Café y Código

7. Herencia: El Hijo bajo la Lupa

Validando el Polimorfismo

Cuando una clase hija hereda de un padre (Guerrero extends Personaje), debe seguir cumpliendo las reglas del padre pero comportarse a su manera en los métodos sobrescritos (@Override). Un test unitario nos permite asegurar que el hijo realmente es un padre y que sus ataques especiales funcionan.

Validando comportamientos heredados
JAVA
1 @Test
2 void testGuerreroEsUnPersonaje() {
3 Personaje p = new Guerrero("Hercules");
4 // Assert 1: ¿De verdad es un Personaje?
5 assertTrue(p instanceof Personaje);
6 }
7
8 @Test
9 void testAtaqueGuerrero() {
10 Guerrero g = new Guerrero("Kratos");
11 int danio = g.atacar();
12 // Suponemos que el padre ataca 10, pero el guerrero ataca 25
13 assertEquals(25, danio, "El ataque del guerrero debería ser mayor");
14 }

👨‍💻 Ejercicio Práctico 1

Misión: El objeto familiar

Crea un objeto de tipo Ave p = new Pinguino() en tu test. Usa assertTrue con el operador instanceof para verificar su herencia.

👁️ Ver solución propuesta
JAVA
1 @Test
2 void testEsAve() {
3 Ave p = new Pinguino();
4 assertTrue(p instanceof Ave);
5 }

👨‍💻 Ejercicio Práctico 2

Misión: Super Constructor

Si el padre Vehiculo asigna un ID automático, verifica que new Coche().getId() no sea nulo usando assertNotNull.

👁️ Ver solución propuesta
JAVA
1 @Test
2 void testIdHeredado() {
3 Coche c = new Coche();
4 assertNotNull(c.getId());
5 }

Ponte a prueba

¿Tus clases hijas son dignas sucesoras?

Ko-fi
Donaciones
Apoyá cafeycodigo con un café en Ko-fi. Colaboradores: insignia, muro y zona exclusiva.