【发布时间】:2020-01-18 11:37:16
【问题描述】:
我是学生,正在学习 java 继承。
我制作了一个类图,我在课堂上有一个反馈,我误用了继承。
(程序制作是“比特币挖矿”)
我制作了一个关于矿机的“挖掘机”类。
并制作了一个继承“挖掘机”类的“ClockConfigurableDigger”类。本课程制作可以超频或降频的矿机。
并做了一个 继承“ClockConfigurableDigger”类的“DurablityRecoverDigger”类。 这个类既可以改变时钟,又可以恢复其耐用性。
我的导师说以这种方式使用继承是错误的。
我认为原因(为什么他说这是错误的)是clockConfigurablityDigger 与Digger 的关系比is-a 关系。那个clockConfigurablity 不应该是Digger 类的子类。只是因为 ClockConfigurableDigger 比 Digger 类多了一个功能。
你觉得我的理由对吗?
或者你对我的类图有什么看法?
感谢您的阅读!
【问题讨论】:
-
一个好的经验法则是“避免继承”。理论上听起来比实践中要好得多。不幸的是,它花了一些时间才意识到这一点,所以仍然有很多这种
Digger -> ClockConfigurableDigger -> DurabilityRecoverDigger类你已经建立的继承不会产生好的设计。总是喜欢构图。
标签: java inheritance