다음 Java 프로그램의 출력은?
class A {
int x = 2;
int value() { return x; }
}
class B extends A {
int x = 5;
int value() { return x + 1; }
}
public class Main {
public static void main(String[] args) {
A ref = new B();
System.out.print(ref.x + " " + ref.value());
}
}정답 2번
필드는 참조 변수의 선언 타입 A를 기준으로 선택되므로 ref.x는 2이다. 인스턴스 메서드는 실제 객체 타입 B로 동적 디스패치되어 B.value()가 B.x=5를 읽고 6을 반환한다. 따라서 `2 6`을 출력한다.
콘텐츠 정보
- 자료 유형
- 정처LAB 자체 제작
- 검수 상태
- 내용 검수 완료
- 해설 작성·검수
- 정처LAB 편집 기준
- 최종 검수
- 2026-08-22