是所有面向对象原则的核心开放扩展封闭变化面对需求，对程序的改动是在增加代码的前提下进行的实际情况下，比如一个被公共调用的类，需要根据需求更改和扩充，不应该直接更改这个类。而应当考虑实际情况，抽象出模型，然后继承并模型并实现。核心思想：对抽象编程，而非对具体编程使用抽象类去扩展方法举例比如实现 简单的 加法运算前期只是一个简单的加法计算，写一个简单的类实现加法到后期如果需要实现四则运算，这里要做的是抽象出四则运算的抽象类，里面有需要实现的是求计算结果，然后加减乘除类去继承抽象类，这样即使后期需要扩充额外的运算类，只要在此基础上增加派生类即可直接更改原始类的后果类如果被公共调用，那么原始的业务已经稳定下来，如果更改此类，则需要更改所有调用它的类，这增加了维护成本有些类不能被更改，比如在不知道有其他人调用的情况下，更改此类会对其他调用方造成影响注意如果能料想到存在的需求改动，可以考虑先抽象，越早抽象难度越低时刻抽象不是好主意，不成熟的抽象可能造成不良后果