ホームページ >Java >&#&チュートリアル >Java サブクラスはプライベート フィールドを継承しますか?
サブクラスはプライベート フィールドを継承しますか: Java の難題
Java では、継承の概念は多くの場合単純です。ただし、サブクラスのプライベート フィールドのトピックには、いくつかのあいまいさが含まれます。
質問:
サブクラスは親クラスからプライベート フィールドを継承しますか?
最初の回答:
「通常の OOP 方法」に基づくオブジェクト指向プログラミングの場合、答えは「いいえ」でしょう。通常、プライベート フィールドはサブクラスからアクセスできません。
Java ドキュメント:
Java 言語仕様 (JLS) には、「プライベートと宣言されたクラスのメンバーは継承されない」と記載されています。そのクラスのサブクラスによって。"
インタビュアーの引数:
JLS の引用にもかかわらず、プライベート フィールドは間接的であってもサブクラスによって継承されると主張する人もいるかもしれません。彼らは、これらのフィールドはサブクラス オブジェクト内に存在し、リフレクションなどの手段を通じてアクセスできると主張しています。
インタビュアーをサポートする引数:
JLS からの説明:
ここでの重要な違いは次のとおりです。オブジェクトの継承とクラスの継承の間。
結論:
サブクラスのオブジェクトは親クラスからプライベート フィールドを継承しますが、サブクラス自体はプライベート フィールドを継承します。ない。オブジェクト レベルの継承とクラス レベルの継承のこの区別は、Java の継承モデルを理解する上で重要です。インタビュアーの主張にもかかわらず、JLS はこの問題について明確な定義を提供しています。
以上がJava サブクラスはプライベート フィールドを継承しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。