Il Liskov Substitution Principle (LSP) stabilisce che gli oggetti di un sottotipo devono essere sostituibili al loro tipo di base senza infrangere la correttezza del programma. Se il codice funziona con una Base, deve funzionare con qualsiasi Subclass — stesse aspettative comportamentali, nessuna sorpresa.
