继承、里氏替换原则、什么叫多态、向上转型
2441 2019-02-26 16:25
就是当你站在了正确的车间、招呼了正确的工人,你只要喊一句,给这辆宝马上轮胎。然后一个符合该车型的轮胎就由工人正确安装了。你不用管它的大小。品牌就自动对应上了。
你只要喊父类的名字,就能得到正确的子类工作。
里氏替换法则:
第二个定义,functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it.
所有引用基类的地方必须能透明地使用其子类的对象。
通俗点讲只要父类能出现的地方我子类就可以出现,而且调用子类还不产生任何的错误或异常,调用者可能根本就不需要知道是父类还是子类。但是反过来就不成了,有子类出现的地方,父类未必就能适应
——摘自《设计模式之禅第一版2009.5》中第26.2节
里氏替换原则:基类出现的地方,派生类(子类)就可以出现,反过来不行。 用到一阳指的地方,就可以用六脉神剑,而用了六脉神剑的地方,一阳指可能就不灵了。因为六脉神剑是以一阳指为根基的。
你拍个电影,需要一声动物叫,猫也能叫、狗也能叫。那么你需要一声狗叫的时候,猫就不行。所以多态的时候尽量使用上层类。下面就好灵活添加。
全部评论