之前我们对设计模式的六大原则做了简单归纳,这篇博客是对里氏替换原则进行的举例说明。
里氏替换原则的意义
子类可以扩展父类的功能,但不能改变父类原有的功能
继承机制的优点:
- 代码共享,减少创建类的工作量
- 提高代码的重用性;
- 子类可以形似父类,又异于父类;
- 提高父类的扩展性,实现父类的方法即可随意而为;
继承机制的缺点:
- 继承是入侵性的(只要继承,就必须拥有父类的所有属性与方法);
- 降低了代码的灵活性(子类拥有了父类的属性方法,会增多约束);
- 增强了耦合性(当父类的常量、变量、方法被修改时,必需要考虑子类的修改)。
违反里氏替换原则的反例子
举例说明继承的风险,我们需要完成一个两数相减的功能,由类Subtraction来负责: