The Liskov Substitution Principle (LSP) is a foundational concept in object-oriented design.
LSP states that objects of a superclass should be replaceable with objects of a subclass without affecting the correctness of the program.
To adhere to LSP, subclasses must adhere to the behavior defined by their base classes and should not override or weaken any functionality of the base class.
Following LSP leads to improved reusability, ease of testing, and enhanced maintenance of code.