ホームページ >Java >&#&チュートリアル >Java では「super.super.method();」が許可されないのはなぜですか?
なぜ super.super.method(); なのかJava では禁止されていますか?
super.super.method(); の使用。 Java ではカプセル化の問題により禁止されています。カプセル化は、親クラスの動作の回避を防ぐことを目的としています。
(同じメソッド内で) 独自のクラスの動作をバイパスすることが合理的な場合もありますが、親の動作をバイパスしないことが重要です。次のクラス階層を考えてみましょう。
次のように定義するのが論理的ですメソッド:
これにより、サブクラスが親クラスによって課された制約に従うことが保証されます。
ただし、super.super.add() が許可されている場合、悪意のある NaughtyCollection サブクラスが存在する可能性があります。 RedCollection の赤いアイテム要件をバイパスします:
これにより、RedCollection によって確立された不変条件が破られ、赤ではない可能性のある項目のコレクションが作成されます。
したがって、super.super Java では、カプセル化を維持し、クラスの動作を強制するため、.method() 呼び出しは禁止されています。
以上がJava では「super.super.method();」が許可されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。