लिस्कोव्ह प्रतिस्थापन तत्त्व (LSP) असे सांगते की सबटाइपच्या ऑब्जेक्टस त्यांच्या बेस टाइपच्या जागी प्रोग्रामची शुद्धता भंग न करता वापरले जाऊ शकतात. जर कोड Base सह काम करतो, तर तो कोणत्याही Subclass सह काम केला पाहिजे — समान वर्तन अपेक्षा, कोणतेही आश्चर्य नाही.
प्रमाणिक उल्लंघन: 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() == ;
}
