通俗的讲就是:子类型必须可以替换掉它们的基类型。设计
继承是否合理咱们须要用里氏替换原则来判断。是否合理并非从继承的设计自己看,而是从应用场景的角度看。若是在应用场景中,也就是在程序中,子类能够替换父类,那么继承就是合理的,若是不能替换,那么继承就是不合理的。继承
一般,子类比父类的契约更严格,都是违反里氏替换原则的。一个类若是不是为了被继承而设计,那么最好不要继承它。粗暴的讲,若是不是抽象类或者接口,最好不要继承它,组合因为继承。接口