Het Liskov Substitution Principle (LSP) stelt dat objecten van een subtype vervangbaar moeten zijn voor hun basistype zonder de juistheid van het programma in gevaar te brengen. Als code werkt met een Base, moet het werken met elke Subclass — dezelfde gedragsverwachtingen, geen verrassingen.
