开闭原则就是说对扩展开放,对修改关闭。
扩展开放---对提供方(新增加的功能)
修改关闭--使用放
public class Simple01 {
public static void main(String[] args) {
CarFactory carFactory = new CarFactory();
carFactory.getCar(new SuvCar(30));
carFactory.getCar(new JcCar(7));
}
}
class CarFactory {
public void getCar(BaseCar car) {
//动态调用car的实现方法,从而实现了修改的关闭;对扩展的开放,因为这里依赖的是抽象,所以在使用时动态提供,从而动态改变其功能
car.getCar();
}
}
abstract class BaseCar {
int carType;
abstract void getCar();
}
class SuvCar extends BaseCar {
public SuvCar(int carType) {
super.carType = carType;
}
@Override
void getCar() {
if (carType >= 20) {
System.out.println("输出一两20万级别的SUV车");
} els