サブクラス: プライベート フィールドを継承するかどうか?
面接の難問では、サブクラスがプライベート フィールドを継承するかどうかという問題が議論を引き起こします。最初は、これらのフィールドに直接アクセスできないため、否定的な反応が起こると想定されるかもしれません。しかし、インタビュアーは、間接アクセスとリフレクションのメソッドを挙げて、サブクラスはそれらを継承していると主張しています。
インタビュアーの見解にもかかわらず、Java 言語仕様 (JLS) は、クラスのプライベート メンバーはそのサブクラスに継承されないと明確に述べています。 。この区別は、オブジェクトではなくクラスのコンテキストで継承を考慮する場合に重要です。サブクラスのオブジェクトには、間違いなくスーパークラスのプライベート フィールドが含まれています。
インタビュアーの意見は、継承の広義の定義に基づいている可能性があります。サブクラスのオブジェクトは、プライベート フィールドを含む、親クラスのすべてのデータとメソッドを継承します。ただし、クラスの観点から見ると、継承とは、子クラスで使用できる構文と機能を指します。プライベート メンバーはそのクラスまたはサブクラスの外部からアクセスできないため、この意味ではサブクラスはプライベート メンバーを継承しません。
結論として、サブクラスのオブジェクトは親クラスからプライベート フィールドのデータ値を継承しますが、サブクラスは構文やアクセシビリティの観点から、それら自体はこれらのフィールドを継承しません。この理解は、公式の Java 言語定義と明確に一致しています。
以上がサブクラスはJavaのプライベートフィールドを継承しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。