里氏替换原则
可以解读为:派生类(子类)对象可以在程序中代替其基类(超类)对象。
子类可以扩展父类的功能,但不能改变父类原有的功能。
里氏替换原则对继承进行了规则上的约束,这种约束主要体现在四个方面:
- 子类可以实现父类的抽象方法,但不能重写父类的非抽象方法。
- 子类中可以增加自己特有的方法。
- 当子类的方法重载父类的方法时,方法的前置条件(即方法的输入/入参)要比父类 方法的输入参数更宽松。如父类方法的入参是HashMap那么子类重载方法的入参因该是Map。
- 当子类实现父类的抽象方法时,方法的后置条件(即 方法的输出/返回值)要比父类更严格或相等。