1

我有三个 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,但我仍然在Class3and之间有重复的方法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 回答