java设计模式之设计原则⑥里氏代换原则

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

定义:
(1)一个软件实体如果使用的是一个父类的话,那
么一定适用于其子类,而且它察觉不出父类和子
类对象的区别。也就是说,在软件里面,把父类
替换成它的子类,程序的行为没有变化。
(2)一个软件实体如果使用的是一个子类的话,那
么它不能适用于其父类。

里氏代换原则就是使用父类的地方就可以传递子类。

以下通过案例进行理解里氏代换原则:
首先创建一个父类Person,写一个display方法
在这里插入图片描述
创建一个子类Man继承了Person这个类,重写其display方法
在这里插入图片描述
创建一个MainClass测试类,里面写一个main启动方法,写一个display方法,参数是Person这个对象,方法中调用person的display方法。
在这里插入图片描述
运行结果如下

对于里氏代换原则的定义来说就是我们测试类MainClass中调用display方法可以将父类换成子类如下:
在这里插入图片描述
这其实就是多态,就是方法参数是父类,我们用多态的形式传递其子类对象进去,也是成立的。
但是反过来如果方法的参数是子类对象,我们就不可以传递父类对象。

案例二:
在这里插入图片描述
创建一个Bird鸟 接口,有个方法fly飞
在这里插入图片描述
创建一个类 老鹰 实现了Brid接口。
在这里插入图片描述
创建一个麻雀类 实现了Brid接口

在这里插入图片描述
但是这个时候如果是企鹅的话,它实现了鸟类这个接口,但它不会飞
在这里插入图片描述
创建一个MainClass测试类,main方法和fly方法
在这里插入图片描述
测试发现企鹅就不会飞,所以企鹅不能实现鸟类的接口。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值