里氏代换原则
@H_301_9@ 优点: @H_301_9@ 1、代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性。 @H_301_9@ 2、提高代码的重用性。 @H_301_9@ 3、子类可以形成父类,但有异于父类。 @H_301_9@ 4、提高代码的可扩展性,实现父类的方法,很多开源框架的扩展接口都是通过继承父类来完成的。 @H_301_9@ 5、提高产品或项目的开放性。 @H_301_9@
@H_301_9@ 当然,有优点就会有缺点,继承的缺点如下: @H_301_9@ 1、继承是侵入性的,只要继承,就必须拥有父类所有的属性和方法。 @H_301_9@ 2、降低代码的灵活性,子类必须拥有父类的属性和方法,让子类自由的世界中多了些约束。 @H_301_9@ 3、增强了耦合性,当父类的常量、变量和方法被修改时,必须要考虑子类的修改,而且在缺乏规范的环境下,这种修改可能带来非常糟糕的结果——大片的代码需要重构。 @H_301_9@
@H_301_9@ 里氏代换原则为良好的继承定义了一个规范: @H_301_9@ 1、子类必须完全实现父类的方法。 @H_301_9@ 2、子类可以有自己的个性。 @H_301_9@ 3、覆盖或实现父类的方法时,输入参数就可以被放大。 @H_301_9@4、覆盖或实现父类的方法时,输出结果可以被缩小。