《Android 源码设计模式解析与实战》——第1章,第1.3节构建扩展性更好的系统——里氏替换原则
本节书摘来自异步社区《Android 源码设计模式解析与实战》一书中的第1章,第1.3节构建扩展性更好的系统——里氏替换原则,作者 何红辉 , 关爱民,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.3 构建扩展性更好的系统——里氏替换原则里氏替换原则英文全称是Liskov Substitution Principle,缩写是LSP。LSP的第一种定义是:如果对每一个类型为S的对象O1,都有类型为T的对象O2,使得以T定义的所有程序P在所有的对象O1都代换成O2时,程序P的行为没有发生变化,那么类型S是类型T的子类型。上面这种描述确实不太好理解,我们再看看另一个直截了当的定义。里氏替换原则第二种定义:所有引用基类的地方必须能透明地使用其子类的对象。 我们知道,面向对象的语言的三大特点是继承、封装、多态,里氏替换原则就是依赖于继承、多态这两大特性。里氏替换原则简单来说就是,所有引用基类的地方必须能透明地使用其子类的对象。通俗点讲,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本就不需要知道是父类还是子类。但是,反过来就不行了,有子类出现的...