谁能用一句通俗的话来说名一下java中的里氏代换原则

来源:百度知道 编辑:UC知道 时间:2024/06/28 17:01:10
用通俗的一个句话来说,就是谁去代换谁。

或者有更好的解释方法。

就是 父类引用只能指向子类的实例!!!!! 这个意思

还可以说:
子类的引用不能指向父类的实例

够简单了吧

李氏代换原则,如果把“人”当成父类,“程序员”可以看成是他的子类,程序员肯定是人,但人不一定就是程序员,例:人还可能是司机教师等,它们不一定会编程
所以把父类声明实例化的对象强制转换为子类对象会发生异常

里氏代换原则(LSP):如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型T2是类型T1的子类型。换言之,一个软件实体如果使用的是一个基类的话,那么一定使用于其子类,而且它根本不能察觉出基类对象和子类对象的区别。

里氏代换原则是继承复用的基石。只有当衍生类可以替换掉基类,软件单位的功能不会受到影响时,基类才真正被复用,而衍生类也才能够在基类的基础上增加新的行为。