Polimorfismo de Java
Polimorfismo significa «muchas formas» y ocurre cuando tenemos muchas clases que están relacionadas entre sí por herencia.
Como especificamos en el capítulo anterior;
Herencia nos permite heredar atributos y métodos de otra clase. Polimorfismo
utiliza esos métodos para realizar diferentes tareas. Esto nos permite realizar una sola acción de diferentes formas.
Por ejemplo, piense en una superclase llamada Animal
que tiene un método llamado animalSound()
. Las subclases de animales pueden ser cerdos, gatos, perros, pájaros, y también tienen su propia implementación de un sonido animal (el cerdo gruñe, el gato maúlla, etc.):
Ejemplo
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("The dog says: bow wow");
}
}
Ahora podemos crear Pig
y
objetos y llamar al
DoganimalSound()
método en ambos:
Ejemplo
class Animal {
public void animalSound() {
System.out.println("The animal makes a sound");
}
}
class Pig extends Animal {
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}
class Dog extends Animal {
public void animalSound() {
System.out.println("The dog says: bow wow");
}
}
class Main {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // Create a Animal object
Animal myPig = new Pig(); // Create a Pig object
Animal myDog = new Dog(); // Create a Dog object
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
}
}
Inténtalo tú mismo »
¿Por qué y cuándo utilizar «herencia» y «polimorfismo»?
– Es útil para la reutilización del código: reutiliza atributos y métodos de una clase existente cuando creas una nueva clase.