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");
}
}
@Overrideindica 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.