The Liskov Substitution Principle
The third SOLID principle, the Liskov Substitute Principle, is somehow an extension of the Open/Closed Principle. In fact, it concerns the possibility of extending a component through inheritance and imposes a constraint that ensures interoperability of objects within an inheritance hierarchy. The principle says:
Subtypes must be substitutable for their base types.
When we use inheritance, we extend a base component to create specialized components. The principle of Liskov invites us to be careful not to disrupt the functionality of the parent component when we define a derived component. Classes, objects, functions, and other software entities that have to do with the components of an inheritance hierarchy must be able to interact in a uniform manner. In other words, a derived component must be semantically equivalent to its base component. Otherwise, the new components can produce undesired effects when they interact with existing components.
Note
The Liskov...