1. Herencia, pero con diferencias.
Hemos conocido que este nuevo paradigma de programación POO se apoya en una imitación de la vida diaria con el uso de objetos. Ahora vais a ver que existe una semejanza más que nos aportará ¡la gran ventaja de la reutilización de código!: La herencia, una de las características más potentes de la programación orientada a objetos. Pero primero, vamos a conocer la importancia de esta capacidad.
Para realizar este ejercicio en vuestro grupo de trabajo, seguid los siguientes pasos:
Paso 1
Codificad cada uno en su Pycharm una de las siguientes clases especificadas (es obligatorio que al menos uno de vosotros codifique la clase Vehículo):
- Clase Vehículo --> Atributos: color, ruedas. Métodos: __str__ que muestre los atributos, cambia_color().
- Clase Coche --> Atributos: color, ruedas, velocidad. Métodos: __str__ que muestre los atributos, cambia_color(), cambia_velocidad().
- Clase Bicicleta --> Atributos: color, ruedas, tipo (urbana/carrera/montaña). Métodos: __str__ que muestre los atributos, cambia_color(), cambia_tipo().
- Clase Furgoneta --> Atributos: color, ruedas, velocidad, carga. Métodos: __str__ que muestre los atributos, cambia_color(), cambia_velocidad(), cambia_carga().
- Clase Bici_electrica --> Atributos: color, ruedas, tipo (urbana/carrera/montaña), potencia_motor. Métodos: __str__ que muestre los atributos, cambia_color(), cambia_tipo(), cambia_potencia().
Paso 2
Poned en común el código desarrollado y comparad y comprobar el código añadido en cada método. ¡Veréis que se repite gran parte de este código!
Paso 3
Visualizad el siguiente esquema que os presentamos y volved a la comparación resultante en el Paso 2. A la vista de los resultados y del esquema que aquí se os presenta:
- ¿Qué veis en común entre todas las clases definidas en vuestro código?¿Qué trozos de código están repetidos?
- Analizando el esquema: ¿Aglutina la clase superior las redundancias de las clases inferiores?
- ¿Cómo pensáis que podríamos evitar la redundancia de codificación en cada clase aquí definida?