다음 Java 코드의 출력 결과는?
class A { String f(Number n) { return "A"; } } class B extends A { String f(Integer n) { return "B"; } } A x = new B(); System.out.print(x.f(3));
정답 2번
오버로딩 후보는 참조 변수 x의 컴파일 시 타입 A를 기준으로 선택한다. A에는 `f(Number)`만 보이므로 이 메서드가 선택되고, B의 `f(Integer)`는 같은 시그니처를 재정의한 것이 아니라 별도 오버로드다. 따라서 A가 출력된다.
콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-08-22