替换 父类 , 并且 软件功能不受影响 时 , 父类才能真正的被复用 , 子类也能在父类的基础上 增加新的行为 ;
里氏替换原则 是对 开闭原则 的补充 , 实现开闭原则的关键是 进行抽象 , 父类 和...子类 的继承关系 , 就是 抽象 的具体实现 ;
里氏替换原则引申意义 :
子类 可以 扩展 父类的功能 , 但是绝对不能 改变 父类原有的功能 ;
子类 可以 实现 父类的 抽象方法 , 但是 不能...覆盖 父类的 非抽象方法 ;
子类中 可以 增加 自己特有的方法 ;
重载 ( 输入参数 宽松 ) : 子类的方法 重载 父类的方法 时 , 方法的前置条件 ( 输入参数 ) , 要比 父类方法的输入参数更宽松...对应的 工厂 ;
工厂方法模式 利用了 面向对象 的 多态性 , 和 里式替换 原则 ;
子类对象 覆盖 父类对象 , 使 系统 更容易扩展 , 将 创建对象的过程 推迟到子类实现 , 创建对象的任务...:
父类视角 : 一次性 实现 一个算法 不变的部分 , 并将 可变部分 留给 子类 实现 ;
子类视角 : 各个子类中 , 公共部分 被提取出来 , 集中到一个公共的父类中 , 避免代码重复 ;
模板方法模式的目的是