C++ Polimorfismo
Polimorfismo
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.
El polimorfismo utiliza esos métodos para realizar diferentes tareas. Esto nos permite realizar una misma acción de diferentes maneras.
Por ejemplo, piense en una clase base llamada Animal
que tiene un método llamado animalSound()
. Las clases derivadas de animales podrían ser Pigs, Cats, Dogs, Birds (cerdos, gatos, perros, pájaros), y también tienen su propia implementación de un sonido animal (el cerdo gruñe y el gato maúlla, etc.):
Ejemplo
// Clase base
class Animal {
public:
void animalSound() {
cout << "El animal hace un sonido \n";
}
};
// Clase derivada
class Pig : public Animal {
public:
void animalSound() {
cout << "The pig says: wee wee \n";
}
};
// Clase derivada
class Dog : public Animal {
public:
void animalSound() {
cout << "The dog says: bow wow \n";
}
};
Recuerda del capítulo Herencia que utilizamos el símbolo :
para heredar de una clase.
Ahora podemos crear objetos Pig
y Dog
y anular el animalSound()
método:
Ejemplo
// Clase base
class Animal {
public:
void animalSound() {
cout << "El animal hace un sonido \n";
}
};
// Clase derivada
class Pig : public Animal {
public:
void animalSound() {
cout << "The pig says: wee wee \n";
}
};
// Clase derivada
class Dog : public Animal {
public:
void animalSound() {
cout << "The dog says: bow wow \n";
}
};
int main() {
Animal myAnimal;
Pig myPig;
Dog myDog;
myAnimal.animalSound();
myPig.animalSound();
myDog.animalSound();
return 0;
}
Inténtalo tú mismo »
¿Por qué y cuándo utilizar "herencia" y "polimorfismo"?
— Es útil para la reutilización del código: reutilice atributos y métodos de una clase existente cuando cree una nueva clase.