里氏替换原则 里氏替换原则,Liskov Substituion Principle,简称 LSP,一个软件实体如果使用的是一个父类的话,一定适用于其子类,而且它察觉不出父类和子类的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。简单来说,子类型必须能够替换掉它们的父类型。 使用动机 父类能够真正复用(继承),子类也能够在父类的基础上增加新的行为。 如何使用 父类一般使用抽象类或接口。 抽象类定义公共对象和状态;接口定义公共行为。 子类通过继承父类和接口进行扩展。 使用原则 子类方法的参数类型必须与父类相匹配或更抽象。 子类的返回值类型必须与父类或其子类相匹配。 子类方法的异常必须与父类能抛出的异常(或其子类)相匹配。 子类不应该加强参数条件限制。