回顾一下上一节说的“开闭原则” 说的是 一个软件要遵循对修改关闭 对新功能扩展的原则。
这一次来说说 “里氏代换原则”
意思是说:子类型必须能代替他们的基类。
看了半天的例子 好像 是懂非懂啊。。。相当的纠结。
有这么几个例子
例1:讲的是 把 “美女” 当作是基类,以兄妹两, 妹妹可以继承“美女” 因为妹妹可以成为美女,然后哥哥喜欢妹妹 但是不表示哥哥喜欢美女, 因为 哥哥和妹妹之间是兄妹关系。
我的理解: 这个里面的意思就说明了 子类“妹妹”可以继承基类“美女” 。
纠结了半天 好像 没明白什么道理。
就只知道子类必须能代替基类,才算没有违反里氏代换原则。
意思是不是要抽离出最通用的东西 做为基类呢? 希望在后面能弄清楚这个问题。