1

3つのJavaクラスがあります。最初の2つのクラスはを拡張ClassAし、最後のクラスはを拡張しClassBます。

Class1  extends ClassA

Class2  extends ClassA

Class3  extends ClassB

3つのクラス(Class1-3)に重複したメソッドがいくつかあります。それらが重複するのを避けるために、私は次のClassCommonように追加しました:

Class1  extends ( ClassCommon extends ClassA )

Class2  extends ( ClassCommon extends ClassA )

Class3  extends ClassB

したがって、複製されたメソッドはになりましたが、とClassCommonの間で複製されたメソッドがまだClass3ありClassCommonます。

これまでのところセンセーションを作ってほしいです。

私の質問は次のとおりです。とにかく、ジェネリック型を使用して、この種の構成を使用することはできますか?

Class1  extends ClassCommon<ClassA>

Class2  extends ClassCommon<ClassA>

Class3  extends ClassCommon<ClassB>

ClassCommon<E> extends E
4

3 に答える 3

3

どうですか

Class1 extends ClassA
Class2 extends ClassA
Class3 extends ClassB
ClassA extends ClassCommon
ClassB extends ClassCommon

または、インターフェース付き:

Class1 extends ClassCommon implements ClassA
Class2 extends ClassCommon implements ClassA
Class3 extends ClassCommon implements ClassB

幸運を!

于 2013-02-21T20:37:36.957 に答える
2

ClassCommon階層のルートとして使用します。

public abstract class ClassCommon {

    /*
     * Your methods here.
     */
}

それで ...

public class ClassA extends ClassCommon
public class ClassB extends ClassCommon

... と ...

public class Class1 extends ClassA
public class Class2 extends ClassA
public class Class3 extends ClassB
于 2013-02-21T20:48:17.377 に答える
1

あなたが持っている一般的な機能はわかりませんがClassCommon、クラス階層のルートとして試してみてください。

class ClassCommon<E extends ClassCommon<E>>

class ClassA extends ClassCommon<ClassA>

class ClassB extends ClassCommon<ClassB>

class Class1 extends ClassA

class Class2 extends ClassA

class Class3 extends ClassB
于 2013-02-21T20:37:50.413 に答える