Post

Java / Clases / Polimorfismo

Polimorfismo en Java

Java / Clases / Polimorfismo

¿Qué es el Polimorfismo?

Siguiendo con el ejemplo de las motos que planteamos en POO, polimorfismo significa: “muchas formas” y se produce cuando tenemos muchas clases que están relacionadas entre sí por herencia.

Como vimos en el post de herencia, una clase puede heredar atributos y métodos de otra. Pero a veces una acción común a todas debe ejecutarse de forma distinta en cada una. Por ejemplo, todas las motos hacen ruido, pero no todas suenan igual:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Moto {
    void hacerRuido() {
        System.out.println("Brum");
    }
}

public class Deportiva extends Moto {
    @Override
    void hacerRuido() {
        System.out.println("¡BRRRRROOOOOM!");
    }
}

public class Scooter extends Moto {
    @Override
    void hacerRuido() {
        System.out.println("Nyeeeee");
    }
}

@Override indica que estamos sobrescribiendo un método del padre, y si nos equivocáramos en el nombre, Java nos avisa.

Lo bueno de esto es que puedes meterlas todas en el mismo garaje como Moto y cada una sabe qué hacer:

1
2
3
4
5
6
7
Moto[] garaje = { new Deportiva(), new Scooter() };

for (Moto moto : garaje) {
  moto.hacerRuido();
}
// ¡BRRRRROOOOOM!
// Nyeeeee
This post is licensed under CC BY 4.0 by the author.