Liskov substitution principle is named after Barbara Liskov, a computer scientist who first formulated the principle in 1987.
It is one of the five SOLID principles of object-oriented design, which are widely used guidelines for writing clean and maintainable code.
The Liskov substitution principle is a concept in object-oriented programming that states that if a program is using a class hierarchy in which subclasses are inherited from a base class, then the objects of these subclasses should be able to be substituted for objects of the base class without affecting the correctness of the program.
In other words, if a piece of code works correctly with an object of a given class, it should also work correctly with an object of any subclass of that class.
The Liskov substitution principle helps ensure that code is modular and extensible, as it allows developers to add new subclasses without having to change the code that uses the base class.
Liskov substitution principle also helps prevent unexpected behavior in code, as it requires that subclasses do not introduce new behaviors that are not present in the base class.