10. Los Pilares Definitivos (POO Nivel Empresa)
Herencia de Clases Padre-Hijo
Cuando varias de nuestras Clases tienen datos redundantes (como "PersonajeJugable" y "Enemigo" repitiendo el atributo de `nivel` y el método `moverse()`), creamos una Clase Padre y hacemos que éstas la hereden mediante extends. Así evitamos repetir código, respetando el sagrado principio DRY (Don't Repeat Yourself).
Las Estrictas Interfaces (Contratos)
Java prohíbe fuertemente la herencia múltiple de clases (no puedes hacer `class X extends A, B`). En su lugar, existen las sagradas Interfaces (interface). Estas solo dictan qué debe hacer una clase, pero no cómo. Dejan que la clase que la implemente usando implements se encargue del dolor de cabeza de rellenar la función.
👨💻 Ejercicio Práctico 1
Crea clase base `Instrumento` con método protegido void tocar(). Herédala en la clase Guitarra extends Instrumento y usa la anotación protectora @Override arriba del método hijo para reescribir e imprimir "Riff de rock" borrando el sonido anterior del Padre.
👁️ Ver solución propuesta
👨💻 Ejercicio Práctico 2
Imagina que el objeto hijo y padre tienen las mismas propiedades. Dentro de un método de la clase Hija, invoca el método original de su padre con la misma firma utilizando super.metodoPadre() para no confundir al compilador.
👁️ Ver solución propuesta
👨💻 Ejercicio Práctico 3
Desarrolla una interfaz estricta llamada IVolador (es costumbre iniciar con 'I') exigiendo que cualquiera que lo use tenga el método void volar();. Haz que una clase Pato implemente la interfaz y le de poder real usando implements IVolador.
👁️ Ver solución propuesta
👨💻 Ejercicio Práctico 4
Conoce las clases Extractas. Si añades public abstract class X a la declaración, jamás podrás hacer sus objetos directo con 'new'. Simula este escenario bloqueando que alguien instancie a 'SerVivo'.
👁️ Ver solución propuesta
Ponte a prueba
Termina invicto la lección teórica sobre Herencias y Contratos formales.