Java设计模式–里氏替换原则
说明:子类对象能够替换程序中父类对象出现的任何地方,并且保证原来的程序的逻辑行为不变及正确性不被破坏
(If S is a subtype of T,then objects of type T may be replaced with a objects of type of S,without breaking the program/Functions that use pointers of references to base classes must be able to use objects of derived classes without knowing it)。
可以利用面向对象编程的多态性来实现,多态和里氏替换原则有点类似,但他们的关注角度是不一样的,多态是面向对象编程的特性,而里氏替换原则是一种设计原则,用来指导继承关系中子类该如何设计,子类的设计要确保再替换父类的时候,不改变原有程序的逻辑以及不破坏原有程序的正确性。
具体的实现方式可以理解为,子类在设计的设计的时候,要遵循父类的行为约定。父类定义了方法的行为,子类可以改变方法的内部实现逻辑,但不能改变方法原有行为约定如:接口/方法声明要实现的功能,对参数值,返回值,异常的约定,甚至包括注释中所罗列的任何特殊说明。