Liskov替换原则是否适用于从抽象类继承的子类型?

A.A*_*.A. 12 oop liskov-substitution-principle design-principles

松散地说,Liskov Substitution Principle声明派生类可以替代基类而不影响用户.在基类是抽象类的情况下,这意味着没有用户使用基类的实例,Liskov继承限制是否仍然适用于派生类?

tva*_*son 7

仅仅因为你不能实例化一个特定的类并不意味着你不能使用它.在这种情况下,调用代码使用抽象基类作为其运行的合同的定义.从这个意义上讲,从基类派生的每个类都应该可以与基类定义的接口互换,所以Liskov仍然适用.实际上,这是为什么要为具有某些常见行为的类集合创建抽象基类的一个主要原因 - 因此您可以根据基类接口定义操作,而不关心哪个派生类你实际上在经营.