Carré et rectangle
Un exemple classique d’un problème qui viole le principe de substitution de Liskov est le problème du cercle-ellipse, parfois appelé problème du carré-rectangle.
A priori, on pourrait penser qu’il suffit de définir une classe Rectangle, avec des attributs h et w (pour la hauteur et la largeur), puis de 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 telle quelle à la conception orientée objet.
Cet exercice fait partie du cours
<cours>Programmation orientée objet en Python</cours>Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Define a Rectangle class
____
# Define a Square class
____