我有三个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
,但我仍然在Class3
和ClassCommon
之间有重复的方法。
我希望到目前为止我能做出感受。
我的问题是:无论如何都使用泛型类型来进行这种配置:
Class1 extends ClassCommon<ClassA>
Class2 extends ClassCommon<ClassA>
Class3 extends ClassCommon<ClassB>
ClassCommon<E> extends E
答案 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