我想弄清楚如何在我正在处理的项目中最好地解决此问题。我会给出一个类比的问题:Java设计:为扩展相同基类的类添加通用功能,但不修改基类
有一个类,汽车。出汽车的,我创建了3类,扩展它:
- 豪华轿车延伸汽车
- 卡车延伸汽车
- 总线延伸汽车
现在,假设我意识到有人忘记在Car类中包含一个getSpeed()方法,我需要添加它。但是,我无法以任何方式修改Car类,并且3个类必须扩展Car。如何最好地为这3个类添加一个通用功能,而不必前后复制粘贴代码? getSpeed()方法的实现对于每个类都是相同的,所以我想要类似抽象类的东西,但仍然可以将类保留为扩展Car。
这是我的周围只有这样一个例子,到目前为止,但我很好奇,如果有一个更好的办法:
public class Limo extends Car {
CarSpeed cs;
public Limo() {
cs = new CarSpeed(this);
}
}
,并有CarSpeed类包含实际getSpeed()方法。
有没有更清晰的方式来做到这一点,我不知道?我也只能在Java 7中工作,所以我不认为我可以使用默认的关键字(不是我已经读了它足以知道它是否适用于这种情况:()
请问为什么你不能将getSpeed()添加到Car?整个继承点是采用父/基类的某些特征。 – ryekayo
它是我无法方便地重新编译的一个jar文件的一部分:( – misaka
Yikes。嗯......所以基本上你的导入库然后正确? – ryekayo