我认为违反的原则可以是开闭的,但我如何解决这个问题?
public void driveCar(Car car) {
if(car instanceof PersonalCar){
((PersonalCar) car).drive();
}else if (car instanceof SportCar){
((SportCar) car).driveFast();
}
}
是的,开闭原则,因为如果你添加了一种新型汽车,你还必须修改driveCar的方法。要解决这个问题,需要消除条件(if语句),并用继承替换它们,并重写每个car子类中的drive()方法。我将把实现留给您来完成。