我正在阅读Chetan Giridhar写的"Learning Python Design Pattern“一书,我偶然发现了一个称为Liskov替换原则的设计原则,该原则规定派生类必须能够完全替换基类(父类)。
我不认为我理解这一点,因为如果派生类可以完全取代基类,那么编写派生类还有什么意义呢?它不会使基类变得多余吗?
根据我的理解和经验,派生类扩展基类的功能,因此应该依赖于基类。
作者试图帮助我理解的是什么?
发布于 2020-11-01 01:09:21
Derived类应该在不替换旧类的functionality的情况下进行扩展。这意味着派生类应该可以替代它们的parent/base类。此外,它们可以在没有任何意外行为的情况下替代它们的父类。
我们不能替换parent class's功能,但我们可以在子类中对其进行re-write,并在子类之后修改extend。它将通过更改父类来避免复杂软件中可能出现的chain reaction,因此我们选择在子类中duplicate它,然后write我们想要的modifications。
https://stackoverflow.com/questions/59305705
复制相似问题