하위 클래스가 개인 필드를 상속합니까: Java 수수께끼
Java에서 상속 개념은 종종 간단합니다. 그러나 하위 클래스의 비공개 필드 주제는 다소 모호합니다.
질문:
하위 클래스는 상위 클래스의 비공개 필드를 상속합니까?
최초 답변:
객체 지향 프로그래밍의 "일반적인 OOP 방식"이라면 대답은 "아니요"입니다. Private 필드는 일반적으로 하위 클래스에서 액세스할 수 없습니다.
Java 문서:
JLS(Java 언어 사양)에서는 "private으로 선언된 클래스의 멤버는 상속되지 않습니다. 해당 클래스의 하위 클래스별로."
인터뷰어의 인수:
JLS 인용에도 불구하고 일부는 비공개 필드가 비록 간접적이기는 하지만 하위 클래스에 의해 상속된다고 주장할 수 있습니다. 이들은 이러한 필드가 하위 클래스 객체 내에 존재하며 리플렉션이나 다른 수단을 통해 액세스할 수 있다고 주장합니다.
면접관을 뒷받침하는 주장:
JLS의 설명:
여기서 중요한 차이점은 객체에 대한 상속과 클래스 상속.
결론:
하위 클래스의 객체는 상위 클래스의 비공개 필드를 상속하지만 하위 클래스 자체는 이를 상속합니다. 아니다. 객체 수준 상속과 클래스 수준 상속 간의 이러한 구별은 Java의 상속 모델을 이해하는 데 중요합니다. 면접관의 주장에도 불구하고 JLS는 해당 문제에 대해 명확한 정의를 제공합니다.
위 내용은 Java 하위 클래스는 비공개 필드를 상속합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!