같은 의미의 호출 형태를 여러 서명으로 제공합니다.
오버로딩은 이름은 같고 매개변수 목록이 다른 메서드를 정의합니다. varargs는 마지막 매개변수에 Type...을 사용해 개수가 가변적인 인수를 배열로 받습니다.
예제에서 method(Type... values) 부분부터 찾으세요. 선언 타입, 실제 객체와 반환값을 한 줄씩 따라가면서 컴파일 단계에서 잡히는 문제와 실행 중 생기는 문제를 구분하세요.
컴파일러는 인수 타입으로 가장 구체적인 오버로드를 선택합니다. null이나 자동 형 변환이 섞이면 호출이 모호해질 수 있습니다.
오버로드마다 의미가 달라지지 않게 하고 선택 옵션이 많아지면 빌더나 설정 객체를 고려합니다.
현재 코드를 먼저 실행해 출력과 타입 흐름을 확인한 뒤 int와 double 평균 오버로드를 비교하세요.
반환 타입만 다르게 해서는 오버로딩할 수 없습니다.
직접 바꿔보세요int와 double 평균 오버로드를 비교하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.