LSP(里氏替换原则)
两种定义:
- 类型T是类型S的子类型
- 所用引用基类的地方必须能透明的使用期子类对象
为什么要使用里氏替换原则
让继承中的“利”大于“弊”发挥最大作用,同时减少“弊”所带来的麻烦(继承的优点是什么?缺点?)
里氏替换要求凡是使用基类的地方,子类一定适用,因此子类必须具备基类的全部接口
设计模式中体现里氏替换原则的有:策略模式、组合模式、代理模式
Animal animal;
animal = new Horse();
animal.move();
animal = new Bird();
animal.move();