Demystifying the Liskov Substitution Principle (LSP) in Java
The Liskov Substitution Principle (LSP) is a guiding principle in object-oriented programming that states that objects of a superclass should be replaceable with objects of its subclasses without affecting the correctness of the program.