Liskov Substitution Principle (LSP) ਕਹਿੰਦਾ ਹੈ ਕਿ ਇੱਕ subtype ਦੇ ਆਬਜੈਕਟ ਆਪਣੀ ਬੇਸ ਕਿਸਮ ਲਈ ਬਦਲੇ ਜਾ ਸਕਦੇ ਹਨ ਪ੍ਰੋਗ੍ਰਾਮ ਦੀ ਸ਼ੁੱਧਤਾ ਨੂੰ ਤੋੜੇ ਬਿਨਾਂ। ਜੇ ਕੋਡ ਇੱਕ 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() == ;
}
