[Java] 메소드 오버로딩

2020. 4. 14. 17:46Programming Languages/Java

메소드 오버로딩(Method Overloading) : 한 클래스 내에서 이름이 같지만 매개변수의 타입이나 개수가 다른 여러 개의 메소드를 중복 작성하는 방법이다. 자바 특징 중 다형성의 한 경우이다. 메소드 오버로딩은 자바 컴파일러에 의해 판단되며, 컴파일러가 이름이 같은 메소드들을 구분할 수 있으면 메소드 오버로딩이 성공한다.

조건

  1. 메소드 이름이 동일해야 한다.
  2. 매개변수의 개수나 타입이 달라야 한다.

리턴 타입이나 접근 지정자는 관계없다.

성공 사례

class MethodOverloading {

   public int getSum(int i, int j) {
      return i + j;
   }

   public int getSum(int i, int j, int k) {
      return i + j + k;
   }
}

실패 사례

class MethodOverloading {

   public int getSum(int i, int j) {
      return i + j;
   }

   public double getSum(int i, int j) {
      return i + j;
   }
}

오버로딩 메소드 호출 방법

public class MethodOverloading {

    public static void main(String args[]) {                    

        MethodSample a = new MethodSample();                 

        int i = a.getSum(1, 2);                           
        int j = a.getSum(1, 2, 3);                                       

        double k = a.getSum(1.1, 2.2);                  
    }

    public int getSum(int i, int j) {
        return i + j;
    }

    public int getSum(int i, int j, int k) {
        return i + j + k;
    }

    public double getSum(double i, double  j) {
        return i + j;
    }

'Programming Languages > Java' 카테고리의 다른 글

[Java] 상속(extends)  (0) 2020.04.21
[Java] final 키워드  (0) 2020.04.18
[Java] static 키워드  (0) 2020.04.18
[Java] 접근 지정자  (0) 2020.04.18
[Java] 객체의 소멸과 가비지 컬렉션  (0) 2020.04.14