里氏代换原则(企鹅是不是鸟!)

本文通过探讨鸟类和企鹅的关系,解释了里氏代换原则(LSP)。即使企鹅在生物学上属于鸟类,但由于其不会飞行,因此在面向对象设计中无法直接继承具有飞行能力的鸟类。这揭示了正确应用LSP的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看了看《大话设计模式》这本书,写的感觉太棒了,例子通俗易懂,简单的对话引出设计模式的例子。

里氏代换原则(LSP):子类必须能够替换掉他的父类[ASD]

子类继承了父类,所以子类可以以父类的身份出现!

那么问题来了,面向对象设计时,一个鸟类,一个企鹅类,鸟类中有一个   +飞()的方法,那么企鹅可以继承鸟这个类吗?


按照常识来说,企鹅是特殊的鸟,虽然不会飞也是鸟,所以可以继承!!

但是,这是错的,子类拥有父类所有非Private的行为和属性。鸟会飞,而企鹅不会,尽管在生物学上企鹅是鸟,但是在这个例子中,企鹅是不能继承这个鸟类的,因为企鹅不会飞,所以它在这里不能以父类的身份出现,除非企鹅会飞,才能去继承!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值