Liskov Substitution Principle (LSP) afirmă că obiectele unui subtip trebuie să fie substituibile pentru tipul lor de bază fără a încălca corectitudinea programului. Dacă codul funcționează cu o Base, trebuie să funcționeze cu orice Subclass — aceleași așteptări comportamentale, fără surprize.
