当前两个类已经在基本子类关系中时,如何在第三个类中继承两个类?

时间:2012-05-08 16:38:03

标签: java immutability delegation

假设我想将A类和B类继承到C类(这里B也扩展了A)。我非常清楚虽然我永远不能直接在Java中使用,但是通过使用Mixin继承(链接:http://csis.pace.edu/~bergin/patterns/multipleinheritance.html ),即使用一个接口和另一个作为基类,并在内部使用委托我可以做到,当A& B是不相关的类时。

当A& A时,我该如何做同样的事情? B有父子自己,我需要在C?

中继承它们

仅为了您的信息,我正在尝试做同样的事情来实现A和A类的不变性。 B.

2 个答案:

答案 0 :(得分:1)

如果您的class B已经延长class A,则class C延长class B就可以了。通过扩展class B,您还可以获得class A中尚未明确覆盖的所有功能class 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

答案 1 :(得分:0)

为什么不将A类作为抽象类,然后在B和C中进行扩展。让您的常用方法在A中作为抽象(或可以定义),然后您可以在具体类中覆盖它们。 / p>