里氏替换(LSP)之我见
2017-12-11 本文已影响0人
余头
LSP讲述了基类和子类的关系,是一个继承的规范原则。
继承优点:
1)代码共享,子类拥有父类方法和属性
2)提高代码重用性
3)提高代码扩展性
缺点:
1)继承是侵入性的,只要继承,必须拥有父类所有属性和方法
2)降低代码灵活性
3)增强了耦合性,当父类常量、变量和方法被修改,需考虑子类的修改
定义:所有引用基类的地方必须能透明地使用其子类的对象
(只要父类能出现的地方子类就可以出现,且替换为子类也不会产生错误和异常,使用者可能根本无需知道是父类还是子类。但反过来有子类出现的地方,父类未必能适应)