1. 오버로딩(or 메서드오버로딩)이란?
- 한 클래스 내에 같은 이름의 메서드를 여러 개 정의 하는 것
2. 오버로딩의 조건
- 메서드 이름이 같아야 한다.
- 매개변수의 개수 또는 타입이 달라야 한다.
*return값은 오버로딩을 구현하는데 아무런 영향을 주지 못함
3. 오버로딩의 장점
- 메서드의 이름만 보고도 '같은 기능을 한다'는 것을 예측할 수 있음
- 메서드의 이름을 절약할 수 있음
4. 가변인자와 오버로딩
- 메서드의 매개변수의 개수를 동적으로 지정해 줄 수 있는데 이 기능을 '가변인자(variable arguments)라고 함
-'타입 ... 변수명'과 같은 형식으로 선언
Ex)
public PrintStream printf(String format, Object... args) { }
- 가변인자 외에도 매개변수가 더 있다면, 가변인자를 매개변수 중에서 제일 마지막에 선언해야 함
- 가변인자를 선언한 메서드를 오버로딩하면, 메서드를 호출했을 때 구별되지 못하는 경우가 발생하기 쉽기 때문에, 가능하면 가변인자를 사용한 메서드는 오버로딩하지 않는 것이 좋음
java의 정석 chapter6