我试图找出如何在我正在进行的项目中最好地解决这个问题。我将对问题进行类比:
有一个班级,汽车。在 Car 之外,我创建了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中工作,所以我不认为我可以使用默认关键字(并不是说我已经阅读了足够的关键字以了解它是否适用对于这种情况:()
答案 0 :(得分:1)
有两种方法可以实现这一目标:
将getSpeed()
添加到Car类,以便其他类可以继承此方法。这可能是它遵循OOP的最佳方式。
创建一个界面并向其添加getSpeed()
。唯一的事情是,当你实现界面时,像Limo,Truck和Bus这样的其他类必须创建getSpeed()
的主体。