쉽게 이해하기
부모와 자식이 같은 이름의 필드를 갖더라도 두 저장칸이 따로 있습니다. Parent p = new Child();에서 p.value는 Parent의 필드를 읽습니다. p.name()이 재정의된 메서드라면 Child의 메서드를 실행합니다. 먼저 점 뒤에 괄호가 있는지 확인하면 두 규칙을 구분할 수 있습니다.
눈으로 따라가기
p.value → Parent.value / p.name() → Child.name()
class Parent { int value=10; String name() { return "Parent"; } }
class Child extends Parent { int value=20; @Override String name() { return "Child"; } }
public class Main {
public static void main(String[] args) {
Parent p = new Child();
System.out.print(p.value + " " + p.name());
}
}시험 함정
필드에는 메서드의 동적 선택 규칙을 적용하지 않습니다.
함께 보는 관련 주제
비슷한 개념의 핵심과 함정을 이 페이지에서 비교합니다.
즉시 문제 · 5개
정답을 제출하면 해설과 관련 개념을 확인합니다. 틀린 문제는 자동으로 오답노트에 저장됩니다.
즉시 3문제관련 문제 전체검증 근거
기술 문서/실행 검증 · 마지막 검증 2026-09-27 · 핵심 코드 추적 유형 · 공식 출제 횟수 집계 없음