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
Programmation orientée objet en Python
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Define a Rectangle class
____
# Define a Square class
____