6-30~31 오버로딩

oyeon·2020년 12월 23일
0

(완)객체지향 개념

목록 보기
13/37

오버로딩

  • overloading, 과적
  • java에서 명확한 명칭 : 메서드 오버로딩
  • 한 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것

오버로딩 성립 조건

  • 메서드 이름이 같아야 한다.
  • 매개변수의 개수 또는 타입이 달라야 한다.
  • 반환 타입은 영향없다.

오버로딩이 아닌 예1 - 변수 이름만 다름. 메서드 중복 정의.

int add(int a, int b) { return a + b; }
int add(int x, int y) { return x + y; }

오버로딩이 아닌 예2 - 반환 타입만 다르다. 메서드 중복 정의.

int add(int a, int b) { return a + b; }
long add(int a, int b) { return (long)(a + b); }

오버로딩의 예1

int add(int a, int b) { return a + b; }
long add(long a, long b) { return a + b; }
int add(int[] a) { return sum; }

오버로딩의 예2 - 매개변수의 타입이 다르다.

long add(int a, long b) { return a + b; }
long add(long a, int b) { return a + b; }

But, 위의 경우 add(3, 3) 호출 시 ambiguous error - 어떤 메서드를 호출하려는지 모호하다.

profile
Enjoy to study

0개의 댓글