里氏替换原则:在子类对象出现的地方用父类对象来替换,并不会改变程序的逻辑行为。
这其实在纠正我们面向字面理解的一个错误,在coding的世界里,父类与子类的关系不是现实生活当中的父与子关系,不应出现基因变异,按照里氏替换原则的要求,父类与子类在父类已有定义的行为上表现应该完全一致,子类应该是父类功能上的补充。
1. 首先最明显的一点:子类不与父类所注释或者所表达的功能是违反里氏替换原则原则的
2. 子类的输入或者输出或者说抛出异常以及对异常处理的方式(抛出还是捕获)与父类不一致是违反里氏替换原则的
总结来说就是,子类在实现父类功能时,与父类功能上应该保持一致