ホームページ >Java >&#&チュートリアル >Java の継承: 複数の継承はサポートされていますか?
Java の継承: 複数レベルとマルチレベル
Java では、継承の概念により、クラスが別のクラスからプロパティと動作を継承できます。クラス。しかし、Java が多重継承 (つまり、複数の基底クラスからの継承) をサポートしているかどうかという問題は、議論を引き起こしました。
面接官の声明
面接官はシナリオを提示しました。ここで、クラス A はクラス B を拡張し、クラス B は Object クラスを拡張します。彼らは、A は B から継承し、最終的にはオブジェクトから継承するため、これは多重継承を構成すると主張しました。
あなたの回答
B がオブジェクトから継承していると述べたあなたの回答は、正しく明確化されました。
多重継承の定義
多重継承とは、クラスが 2 つまたは複数のプロパティと動作を継承する状況を指します。無関係な基底クラスが増えます。 Java では、このタイプの継承はサポートされていません。
マルチレベルの継承
マルチレベルの継承は、クラスが別のクラスから継承するときに発生し、そのクラスもまた継承します。別のクラスからなど。指定されたシナリオでは、A は B を拡張し、B は Object を拡張し、複数の分岐ではなく継承のチェーンを作成します。
実装の詳細
内部的に、JVM はメンバーを解決します。オブジェクトの型または継承元の型でメンバーを検索することにより、オブジェクトからアクセスします。この例では、B が Object.
Java 8 およびデフォルト インターフェイス メソッド
から継承されたメンバーへのアクセスを間接的に提供するため、クラス A のインスタンスは A と B の両方のメンバーにアクセスできます。Java は真の多重継承をサポートしていませんが、Java 8 でのデフォルトのインターフェース メソッドの導入により、いくつかの複雑さが生じています。デフォルトのインターフェース・メソッドを使用すると、インターフェースはメソッドのデフォルト実装を提供できます。クラスがインターフェイスを実装する場合、独自の実装を提供していない場合でも、これらのデフォルト メソッドを継承できます。これにより、多重継承の影響をある程度シミュレートできます。ただし、メソッドの曖昧さやコンストラクターの競合など、真の多重継承に潜む潜在的な落とし穴の一部は回避されます。
以上がJava の継承: 複数の継承はサポートされていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。