0

我试图使一个类能够从其他超类继承其所有数据成员,但不继承仅与其他类相关的不必要的数据成员。

由于我不能从两个类继承,我想我会使用接口。但是,所有接口变量都是公共的、静态的和最终的;本质上是常量而不是实例变量。

有什么想法可以克服这个问题吗?

附加信息:

因此,假设我需要变量 x、y 和 z 存在于 E 类中。

变量 x 将被超类 A 的所有子类使用。变量 y 将被超类 A 的一些子类使用。变量 z 也将被超类 A 的一些子类使用。

抽象类 B 继承自抽象类 A。B 包含变量 y。抽象类 C 继承自抽象类 A。C 包含变量 z。D类需要变量x和y,它继承自抽象类B,一切都很好。E 类需要所有变量 x、y 和 z。但它不能从两个类继承。

我如何让 E 类获得所有变量?

4

2 回答 2

0

Prefer composition to inheritance. Instead of trying to have one class that is derived from multiple base classes, have a clase that contains, or is associated with, an obje t of each if those classes.

于 2013-10-08T20:48:32.067 回答
0

根据您实际尝试执行的操作,您可以将多个接口与 getter/setter 一起使用,显然您的实现类仍需要实现所有数据成员。您还可以保留对一个(或多个)类的引用,这可能是您实际需要的。

我不确定你到底在尝试什么,但通常(或者更像总是)如果你想扩展一个类并且你认为你不需要你扩展的类的一些数据成员,这意味着你做错了什么。

于 2013-10-08T19:51:59.827 回答