里氏替换原则LSP(继承规范)

继承的优点:

1、代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性。

2、提高代码的重用性。

3、子类可以形似父类,但又异于父类。

4、提高代码的可扩展性,实现父类的方法就可以“为所欲为”。君不见很多开源框架扩展接口都是通过继承父类来完成的。

5、提高产品或项目的开放性。

继承的缺点:

1、继承是侵入性的,只要继承就必须拥有父类的所有属性和方法。

2、降低代码的灵活性,子类必须拥有父类的属性和方法,让子类自由的世界中多了些约束。

3、增强了耦合度,当父类的常量、变量和方法被修改时,必须要考虑子类的修改,而且在缺乏规范的环境下,这种修改可能带来非常糟糕的结果——大片代码需要重构。

让继承的利最大化于弊的解决方案就是引入里氏替换原则。

定义:继承必须确保父类所拥有的性质在子类中仍然成立。

含义:

1、子类完整的拥有父类的状态和行为。

2、子类可以有自己的个性。

3、覆盖或实现父类的方法时输入的参数可以被放大、输出的结果可以被缩小。

posted @ 2014-04-11 23:06  Charles_Lv  阅读(400)  评论(0编辑  收藏  举报