【发布时间】:2013-10-15 22:01:56
【问题描述】:
我试图让一个类从其他超类继承其所有数据成员,但不继承仅与其他类相关的不必要数据成员。
由于我不能从两个类继承,我想我会使用接口。但是,所有接口变量都是公共的、静态的和最终的;本质上是常量而不是实例变量。
有什么办法可以解决这个问题吗?
附加信息:
假设我需要变量 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 类获取所有变量?
【问题讨论】:
-
显示您想要实现的代码示例
-
如果类的只有 一些 成员是相关的,那听起来你一开始就遇到了设计问题。
-
我试图让一个类从其他超类继承其所有数据成员,但不继承仅与其他类相关的不必要数据成员。打破封装和面向对象。
-
只保护相关数据成员,其余为私有
-
接口描述的是行为而不是状态。你想要做的是重新设计你的类并在其他拥有它们自己的状态下分开,然后通过组合,然后你注入到你的新类中。
标签: java oop inheritance interface polymorphism