선언 타입은 부모이고 실제 객체는 자식입니다. 같은 이름의 필드와 override 메서드는 왜 다르게 선택되나요?
꼬리 질문을 독립 문항으로 확장했습니다. 원래 문항에서 맥락 보기 →
잠깐, 답변을 보기 전에
먼저 내 말로 설명해 볼까요?
답변과 점검 포인트 펼치기답변 접기
01
구두 답변
정의를 외우기보다, 원리와 조건을 연결해 설명해 보세요.
필드 접근은 표현식의 정적 타입에 의해 선택되는 반면 override 가능한 인스턴스 메서드는 실제 객체의 동적 타입을 따라 dispatch합니다. 같은 이름의 필드는 override가 아니라 hiding일 수 있습니다.
부모 참조·자식 cast·static 메서드·private 메서드를 작은 예제로 구분합니다. 필드 hiding은 혼동을 늘릴 수 있어 명확한 API를 선택합니다. 컴파일된 overload 선택과 실행 시 override도 별도 단계입니다.
02
득점 포인트
이해가 드러나는 지점을 확인해 보세요.
- 필드 접근은 표현식의 정적 타입에 의해 선택되는 반면 override 가능한 인스턴스 메서드는 실제 객체의 동적 타입을 따라 dispatch합니다. 같은 이름의 필드는 override가 아니라 hiding일 수 있습니다.
- 컴파일된 overload 선택과 실행 시 override도 별도 단계입니다.
03
감점 포인트
놓치기 쉬운 조건과 오해를 짚어 보세요.
- 다음 핵심 구분을 반대로 설명하거나 성립 조건을 생략한다: 필드 접근은 표현식의 정적 타입에 의해 선택되는 반면 override 가능한 인스턴스 메서드는 실제 객체의 동적 타입을 따라 dispatch합니다.
04
더 파고들 거리
하나 더 질문하며 이해의 범위를 넓혀 보세요.
득점·감점 포인트는 학습용 자기 점검 기준이며, 특정 회사의 실제 채점표가 아닙니다.
원리부터 공부하고 싶다면
답변을 보충하는 개념·예제·슈도코드를 읽어 보세요.