一:里式替换原则:
(1):里氏替换原则(Liskov Substitution Principle,LSP)由麻省理工学院计算机科学实验室的里斯科夫(Liskov)女士在 1987 年的“面向对象技术的高峰会议”(OOPSLA)上发表的一篇文章《数据抽象和层次》(Data Abstraction and Hierarchy)里提出来的,她提出:继承必须确保超类所拥有的性质在子类中仍然成立(Inheritance should ensure that any property proved about supertype objects also holds for subtype objects)。
(2):里氏替换原则主要阐述了有关继承的一些原则,也就是什么时候应该使用继承,什么时候不应该使用继承,以及其中蕴含的原理。里氏替换原是继承复用的基础,它反映了基类与子类之间的关系,是对开闭原则的补充,是对实现抽象化的具体步骤的规范。
二:里式替换原则的作用:
(1):里氏替换原则是实现开闭原则的重要方式之一。
(2):它克服了继承中重写父类造成的可复用性变差的缺点。
(3):它是动作正确性的保证。即类的扩展不会给已有的系统引入新的错误,降低了代码出错的可能性。
(4):加强程序的健壮性,同时变更时可以做到非常好的兼容性,提高程序的维护性、可扩展性,降低需求变更时引入的风险。
三:里式替换原则的定义:
(1):子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
(2):子类中可以增加自己特有的方法
(3):当子类的方法重载父类的方法时,方法的前置条件(即方法的输入参数)要比父类的方法更宽松
(4):当子类的方法实现父类的方法时(重写/重载或实现抽象方法),方法的后置条件(即方法的的输出/返回值)要比父类的方法更严格或相等
四:代码实现
public class Bird { /** * 飞行时速 */ public double fly; public void .........