继承的说话与里氏替换原则

来源:百度知道 编辑:UC知道 时间:2024/06/04 06:05:13
继承必须确保基类所拥有的性质在子类中仍然成立?请问这种问怎么理解?
也就如1楼您所说,驼鸟修改了父类鸟的性质,可以说驼鸟不属于鸟类,对吗?

也就是说基类所能提供的服务(所提供的功能)能够在自类中有所作用。
比如鸟基类和继承自他的燕子类,鸟类有飞行的方法,而燕子可以继承使用这个方法,他们就合适作为继承。
而鸵鸟就不适合继承自鸟,因为鸵鸟修改了他父类的功能,也就是屏蔽掉了。

回答补充:
面向对象设计的原则是这样的,并不是说一定,只不过如果子类会屏蔽或者修改父类行为,那么这种继承就不是一个好的设计而已。你当然可以把一个垃圾桶继承自水桶,但是水桶是放水的,而垃圾桶屏蔽了水桶的放水的功能而放垃圾了,当你使用多态特性的时候你会发现你有可能把水放在一个垃圾桶里面,这水还能喝么?