多重継承とは、クラスが同時に複数の親クラスから動作と特性を継承できることを意味します。ただし、Java ではデータのセキュリティを確保するために単一の継承のみが許可されることがわかっています。システムで多重継承が必要な場合、それは設計が悪いのではないかと考えることがあります。その際に考えなければならないのは、多重継承の使用方法ではなく、設計に問題があるかどうかということです。多重継承を実装する必要があります。継承などの状況は現実に存在します。私たちは父親の行動と特性と母親の行動と特性の両方を継承します。幸いなことに、Java は非常に親切で、私たちを理解してくれます。インターフェースと内部クラスという 2 つの方法で多重継承を実現できます。
1. インターフェース
インターフェースと抽象クラスを導入するとき、サブクラスは親クラスを 1 つだけ継承できることを学びました。つまり、継承は 1 つだけですが、複数のインターフェースを実装できるということです。多重継承の実装により道が開かれました。
インターフェースの場合、単なるより純粋な抽象クラス以上のものを表す場合があります。インターフェースには特定の実装がありません。つまり、インターフェースに関連するストレージがないため、複数のインターフェースの組み合わせを防ぐ方法はありません。 。
interface CanFight { void fight(); } interface CanSwim { void swim(); } interface CanFly { void fly(); } public class ActionCharacter { public void fight(){ } } public class Hero extends ActionCharacter implements CanFight,CanFly,CanSwim{ public void fly() { } public void swim() { } /** * 对于fight()方法,继承父类的,所以不需要显示声明 */ }
2. 内部クラス
多重継承を実装するための上記のインターフェイスの使用は、より実現可能で一般的な方法です。内部クラスを導入するときに、内部クラスによって多重継承の実装がより完璧になると述べましたが、それも同様です。親クラスが抽象クラスまたは具象クラスの場合、内部クラスを介してのみ多重継承を実装できます。内部クラスを使用して多重継承を実装する方法については、次の例を参照してください。息子が多重継承を使用して父親と母親の優れた遺伝子を継承する方法。 derth父親よりも強くなるために。ここでは 2 つの内部クラスが定義されており、それぞれ父クラスと母クラスを継承しており、どちらもそれぞれの親クラスの動作を非常に自然に取得できます。これは内部クラスの重要な機能です。内部クラスは、内部クラスから 1 つを継承できます。無関係なクラスは内部クラスの独立性を保証します。これに基づいて多重継承が可能になります。
上記は Java 改善の章 (8) -----多重継承の実装です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。