Principio di sostituzione
un oggetto del sottotipo puņ essere sostituito ad un oggetto del supertipo senza influire sul comportamento dei programmi che utilizzano il tipo
- i sottotipi supportano il comportamento del supertipo
- per esempio, un programma scritto in termini del tipo Reader puņ lavorare correttamente su oggetti del tipo BufferedReader
il sottotipo deve soddisfare le specifiche del supertipo
astrazione via specifica per una famiglia di tipi
- astraiamo diversi sottotipi a quello che hanno in comune
- la specifica del loro supertipo