里氏代换原则: 所有引用基类(父类)的地方,必须能透明地使用其子类的对象.
里氏代换原则告诉我们,在软件系统中,将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它一定能够使用基类对象.
使用里氏代换原则需要注意的问题:
- 子类的所有方法必须在父类中声明,或子类必须实现父类中声明的所有方法. 根据里氏代换原则,为了保证系统的扩展性,在程序中通常使用父类来定义,如果一个方法只存在于子类中,在父类中不提供相应的声明,则无法在以父类定义的对象中使用该方法.
- 我们在运用里氏代换原则时,尽量把父类设计成抽象类或者接口,让子类继承父类或者实现接口,并实现在父类中声明的方法,运行时,子类实例替换父类实例,我们可以很方便的扩展系统功能,同时无需修改原有子类的代码,增加新的功能可以通过增加一个新的子类来实现. 里氏代换原则是开闭原则的具体实现手段之一.
里氏代换原则是开闭原则的具体实现手段之一.
废话那么多,说白了里氏代换原则就是多肽嘛,搞懂了多肽的性质就搞懂了里氏代换原则. 我觉得开发中的多肽就是里氏代换原则的例子,一模一样,完全符合.
原文在这里,这里写的更加详细.