[개인공부] ch-6 오버로딩

Walter Mitty·2022년 11월 4일
0

개인공부

목록 보기
7/40
post-thumbnail
  • 오버로딩(overloading)
    • 한 클래스 안에 같은 이름의 메서드를 여러개 정의하는 것.
    • 오버로딩의 대표적인 예는 println이다. 메서드 이름은 같지만 받는 값이 늘 변하니까!

  • 오버로딩이 성립하기 위한 조건
  1. 메서드 이름이 같아야 한다.
  2. 매개변수의 개수 또는 타입이 달라야 한다.
  3. 반환 타입은 영향없다.

예1) 오버로딩x(같은 메서드 중복정의) - 조건 1만 성립

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

예2) 오버로딩x(중복정의) - 조건 1과 3만 성립(반환 타입은 상관 없으니까)

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

예3) 오버로딩o - 조건 1,2,3 성립한다.

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

이때,

add(3, 3)

을 호출하면, 어떤 메서드가 호출될까?
⇨ ambiguous(모호하다/명확하지 않다) error 발생.

0개의 댓글