扩展泛型类

时间:2013-02-21 20:25:03

标签: java generics inheritance

我有三个Java类。前两个类扩展ClassA,最后一个扩展ClassB

Class1  extends ClassA

Class2  extends ClassA

Class3  extends ClassB

我在三个类(Class1-3)中有一些重复的方法。为了避免重复,我添加了ClassCommon,如此:

Class1  extends ( ClassCommon extends ClassA )

Class2  extends ( ClassCommon extends ClassA )

Class3  extends ClassB

所以我的重复方法现在位于ClassCommon,但我仍然在Class3ClassCommon之间有重复的方法。

我希望到目前为止我能做出感受。

我的问题是:无论如何都使用泛型类型来进行这种配置:

Class1  extends ClassCommon<ClassA>

Class2  extends ClassCommon<ClassA>

Class3  extends ClassCommon<ClassB>

ClassCommon<E> extends E

3 个答案:

答案 0 :(得分: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
祝你好运!

答案 1 :(得分: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

答案 2 :(得分: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