서브클래스: 프라이빗 필드 상속 여부
인터뷰 난제에서 서브클래스가 프라이빗 필드를 상속하는지 여부에 대한 질문이 논쟁을 촉발합니다. 처음에는 이러한 필드에 직접 접근할 수 없기 때문에 부정적인 반응을 보일 수도 있습니다. 그러나 면접관은 간접 액세스 및 리플렉션 방법을 인용하여 하위 클래스가 이를 상속한다고 주장합니다.
면접관의 관점에도 불구하고 Java 언어 사양(JLS)에는 클래스의 전용 멤버가 하위 클래스에 상속되지 않는다고 명시되어 있습니다. . 이러한 구별은 객체가 아닌 클래스의 맥락에서 상속을 고려할 때 매우 중요합니다. 서브클래스의 객체는 의심할 바 없이 슈퍼클래스의 전용 필드를 포함합니다.
면접관의 의견은 상속에 대한 더 넓은 정의에서 비롯될 수 있습니다. 하위 클래스의 객체는 비공개 필드를 포함하여 상위 클래스의 모든 데이터와 메서드를 상속합니다. 그러나 클래스 관점에서 상속은 하위 클래스에 사용할 수 있는 구문과 기능을 나타냅니다. Private 멤버는 해당 클래스나 하위 클래스 외부에서 액세스할 수 없으므로 하위 클래스는 이러한 의미에서 이를 상속하지 않습니다.
결론적으로, 하위 클래스의 객체는 상위 클래스에서 비공개 필드의 데이터 값을 상속하지만, 하위 클래스는 자체적으로는 구문이나 접근성 관점에서 이러한 필드를 상속하지 않습니다. 이러한 이해는 공식 Java 언어 정의와 명확하게 일치합니다.
위 내용은 서브클래스는 Java에서 개인 필드를 상속합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!