Liskov-ovo načelo substitucije (LSP) pravi, da morajo biti objekti podtipa zamenljivi za svoj osnovni tip brez kršitve pravilnosti programa. Če kod deluje z Base, mora delovati s katerim koli Subclass — ista vedenja pričakovanja, brez presenečenj.
Kanoničnih kršitev: Square extends Rectangle
{
w, h;
{ .w = w; }
{ .h = h; }
{ w * h; }
}
{
{ .w = w; .h = w; }
{ .w = h; .h = h; }
}
{
r.setWidth();
r.setHeight();
r.area() == ;
}
