Pătrat și dreptunghi
Exemplul clasic al unei probleme care încalcă Principiul Substituției Liskov este problema Cerc-Elipsă, uneori numită și problema Pătrat-Dreptunghi.
La prima vedere, pare logic să definești o clasă Rectangle cu atributele h și w (pentru înălțime și lățime), și apoi să definești o clasă Square care moștenește din Rectangle. La urma urmei, un pătrat „este un" dreptunghi!
Din păcate, această intuiție nu se aplică în proiectarea orientată pe obiecte.
Acest exercițiu face parte din cursul
Programare orientată pe obiecte în Python
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Define a Rectangle class
____
# Define a Square class
____