लिस्कोव सब्स्टीट्यूशन सिद्धांत (LSP) कहता है कि सबटाइप के ऑब्जेक्ट अपने बेस टाइप के लिए प्रतिस्थापनीय होने चाहिए प्रोग्राम की शुद्धता को तोड़े बिना। यदि कोड Base के साथ काम करता है, तो इसे किसी भी Subclass के साथ काम करना चाहिए — समान व्यवहार की अपेक्षाएं, कोई आश्चर्य नहीं।
यह क्यों महत्वपूर्ण है
{
w, h;
{ .w = w; }
{ .h = h; }
{ w * h; }
}
{
{ .w = w; .h = w; }
{ .w = h; .h = h; }
}
{
r.setWidth();
r.setHeight();
r.area() == ;
}
