定义:
(1)一个软件实体如果使用的是一个父类的话,那
么一定适用于其子类,而且它察觉不出父类和子
类对象的区别。也就是说,在软件里面,把父类
替换成它的子类,程序的行为没有变化。
(2)一个软件实体如果使用的是一个子类的话,那
么它不能适用于其父类。
里氏代换原则就是使用父类的地方就可以传递子类。
以下通过案例进行理解里氏代换原则:
首先创建一个父类Person,写一个display方法

创建一个子类Man继承了Person这个类,重写其display方法

创建一个MainClass测试类,里面写一个main启动方法,写一个display方法,参数是Person这个对象,方法中调用person的display方法。

运行结果如下

对于里氏代换原则的定义来说就是我们测试类MainClass中调用display方法可以将父类换成子类如下:

这其实就是多态,就是方法参数是父类,我们用多态的形式传递其子类对象进去,也是成立的。
但是反过来如果方法的参数是子类对象,我们就不可以传递父类对象。
案例二:

创建一个Bird鸟 接口,有个方法fly飞

创建一个类 老鹰 实现了Brid接口。

创建一个麻雀类 实现了Brid接口

但是这个时候如果是企鹅的话,它实现了鸟类这个接口,但它不会飞

创建一个MainClass测试类,main方法和fly方法

测试发现企鹅就不会飞,所以企鹅不能实现鸟类的接口。
本文深入探讨了里氏代换原则,这是面向对象编程中关键的设计原则之一。通过具体的代码示例,如Person类与子类Man的展示,以及Bird接口与不同实现类的对比,阐述了正确应用该原则的重要性,确保程序的稳定性和可扩展性。
650

被折叠的 条评论
为什么被折叠?



