# Liskov Substitution Principle The Liskov Substitution Principle is the "L" in the [[solid principles|SOLID]] acronym. In short, this principle says subclasses must be substitutable for their base classes. In other words, if a subclass violates the expectations of its parent—like a Penguin subclass that can’t fly replacing a Bird class with a fly() method—it breaks polymorphism. Subtypes should always honor the contract set by their parents.