Cuadrado y rectángulo
El ejemplo clásico de un problema que viola el Principio de Sustitución de Liskov es el problema Círculo-Elipse, a veces llamado problema del Cuadrado-Rectángulo.
A todas luces, parece que deberías poder definir una clase Rectangle
, con atributos h
y w
(para la altura y la anchura), y luego definir una clase Square
que herede de la Rectangle
. Al fin y al cabo, ¡un cuadrado "es" un rectángulo!
Por desgracia, esta intuición no se aplica al diseño orientado a objetos.
Este ejercicio forma parte del curso
Programación orientada a objetos en Python
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Define a Rectangle class
____
# Define a Square class
____