2

インターフェイスを実装する以外に、多重継承に使用できる他のオプションは何ですか

4

4 に答える 4

3

直接的な答えは、内部クラスを使用することです。これにより、密接にリンクされているが、独立した基本クラスをカバーする2つ(またはそれ以上)のオブジェクトが得られます。

一般に、継承よりも構成を優先します。どこでも継承を使用するのはよくある間違いです。ただし、それでは、従うのが難しい柔軟性のないソリューションが残ります。

于 2008-12-22T16:51:56.907 に答える
1

最初は、多重継承を避けてインターフェイスを使用することをお勧めします。また、Java は実際には多重継承をサポートしていません。

ただし、ミックスインを使用して多重継承を偽造することはできます。これに関するいくつかのマニュアルがあります:

Java での多重継承

Java Mixin パターン、または多重継承の偽装

また、複合的なものを作成したい場合は、Qi4jフレームワークを検討することをお勧めします。

Qi4j による複合指向プログラミング

于 2008-12-22T17:19:38.943 に答える
0

Javaには多重継承がありません。

Javaチュートリアルの「インターフェース」ページから:

Javaプログラミング言語は多重継承を許可していません...が、インターフェースは代替手段を提供します。

1つのクラスで複数のインターフェースを実装できるため、Javaで実際に多重継承を行う代わりに、またはその代わりに使用できます。

于 2008-12-22T16:52:48.670 に答える
0

おそらく、コンポジションを使用する必要があります。つまり、「親」クラスのインスタンスを「子」クラスのメンバーとして持つことです。(ここでの「親」と「子」は、継承を使用した場合に 2 つのクラスが持つ関係を示します。) 包含 (「子」) クラスは、包含 (「親」) クラスのインターフェースをラップして、機能を公開する必要があります。含まれるクラスの

ラッピング プロセスをスムーズにする 1 つの方法は、包含クラスと包含クラスの両方で同じインターフェイスを実装することです。包含クラスでのこのインターフェイスのメソッドの実装は、包含クラスの同じメソッドへの直接呼び出しにすることができます。

于 2008-12-22T17:20:53.260 に答える