A Liskov-helyettesítési elv (LSP) kimondja, hogy az altípus objektumainak helyettesíthetőnek kell lenniük az alapszintükön anélkül, hogy a program helyességét megtörné. Ha a kód működik egy Base osztályhoz, akkor működnie kell minden Subclass osztályhoz — ugyanolyan viselkedési elvárások, nincs meglepetés.
