Carré et rectangle
Le cas classique d'un problème qui contrevient au principe de substitution de Liskov est le problème du cercle et de l'ellipse, parfois appelé le problème du carré et du rectangle.
À première vue, on pourrait définir une classe Rectangle avec des attributs h et w (pour la hauteur et la largeur), puis définir une classe Square qui hérite de Rectangle. Après tout, un carré « est un » rectangle !
Malheureusement, cette intuition ne s'applique pas à la conception orientée objet.
Cette activité fait partie du cours
Programmation orientée objet en Python
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Define a Rectangle class
____
# Define a Square class
____