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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值