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.