Wówczas klasa Article będzie implementowała MediaAbstract oraz PdfExportable, natomiast klasa Movie tylko MediaAbstract.

Przykład drugi, naruszenia zasady Załóżmy, że dana jest hierarchia dziedziczenia jak na diagramie poniżej.

thumb|center|400px

Typowym przykładem naruszenia zasady LSP byłoby zastosowanie C++ Run-Time Type Information (RTTI) w celu rozpoznania typu obiektu, a następnie wywołanie funkcji, która wykonuje operację na danym obiekcie:

void przetwarzajFigurę(Figura& iFigura) { if(typeid(iFigura) == typeid(Prostokąt)) przetwarzajProstokąt(static_cast<Prostokąt&>(iFigura));

else if(typeid(iFigura) == typeid(Okrąg)) przetwarzajOkrąg(static_cast<Okrąg&>(iFigura));

else if(typeid(iFigura) == typeid(Kwadrat)) przetwarzajKwadrat(static_cast<Kwadrat&>(iFigura)); }

Funkcja przetwarzajFigurę() wprowadza dodatkowe zależności w kodzie, ponieważ musi ona znać wszystkie klasy dziedziczące po klasie Figura. Oznacza to, że każde utworzenie nowej klasy dziedziczącej po klasie Figura, będzie prawdopodobnie wiązało się ze zmianą tej funkcji.