topic★★★★★난이도 · 약 12분
오버로딩(Overloading)
같은 이름의 메서드를 매개변수 목록이 다르게 여러 개 정의하는 것.
#Java#메서드#컴파일타임
왜 배우는가
오버라이딩(Overriding)과 철자가 비슷해 실기 단답형에서 자주 혼동된다. '같은 클래스 내 + 시그니처만 다름 = 오버로딩'으로 외운다.
오버로딩은 컴파일 타임에 매개변수 타입·개수·순서로 구별된다. 반환 타입만 다른 건 오버로딩이 아니다(컴파일 에러).
java
class Calc {
int add(int a, int b) { return a + b; }
double add(double a, double b) { return a + b; }
int add(int a, int b, int c) { return a + b + c; }
}
Calc c = new Calc();
c.add(1, 2); // 첫 번째
c.add(1.5, 2.5); // 두 번째
c.add(1, 2, 3); // 세 번째실기 드릴 1문항
edit실기 드릴 · 단답형
메서드 이름은 같으나 매개변수의 타입·개수·순서가 다르게 여러 개 정의하는 것을 무엇이라 하는가?