1

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

当 A 和 B 有自己的父子并且我需要在 C 中继承它们时,我该如何做同样的事情?

仅供参考,我正在尝试做同样的事情来实现 A 类和 B 类的不变性。

4

2 回答 2

1

如果您class B已经 extends class A,那么class Cextendclass 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
于 2012-05-08T17:02:43.143 回答
0

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

于 2012-05-09T12:24:13.657 回答