1

クラス A とクラス B をクラス C に継承したいとします (ここでは、B も A を拡張します)。Java で直接行うことはできませんが、Mixin 継承 (リンク: http://csis.pace.edu/~bergin/patterns/multipleinheritance.html )を使用することで、1 つのインターフェイスを使用することをよく知っています。 AとBが無関係なクラスの場合、もう1つは基本クラスとして内部的に委任を使用して実行できます。

AとBに親子がいて、Cで両方を継承する必要がある場合、どうすれば同じことができますか?

参考までに、クラスAとBで不変性を達成するために同じことをしようとしています.

4

2 に答える 2

1

あなたclass Bがすでに extendsclass Aを持っているなら、 class Cextendを持っていることclass Bはすでにうまくいっています。拡張することで、特にオーバーライドされていないclass Bすべての機能も取得できますclass Aclass B

おそらく、次のようになります。

class A
{
    public string hello()
    {
        return "Hello, World!";
    }
}

class B extends A
{
}

class C extends B
{
}

C foo = new C();
foo->hello(); // "Hello World!" because it is defined in A
于 2012-05-08T17:02:43.143 に答える
0

クラス A を抽象クラスにしてから、それを B と C に拡張してみませんか。一般的なメソッドを抽象として A に配置し (または定義することもできます)、具象クラスでそれらをオーバーライドできます。

于 2012-05-09T12:24:13.657 に答える