Beruflich Dokumente
Kultur Dokumente
La palabra polimorfismo proviene del griego y significa que posee varias formas
diferentes. Es uno de los conceptos esenciales de la programación orientada a
objetos. Así como la herencia está relacionada con las clases y su jerarquía, el
polimorfismo lo está con los métodos.
Trataremos de describir ahora con más precisión estos tipos de polimorfismo, pero
te sugerimos prestar atención, ya que muchas personas suelen confundirse al
tratar de comprender las diferencias existentes entre estos tres tipos.
Ejemplo:
#include <iostream>
#include <cstdlib>
#include <string.h>
using namespace std;
class disco{
protected:
int capacidad;
string fabricante;
int numserie;
public:
disco(int c, string f, int n);
virtual void imprimir_fabricante();//{cout<<fabricante;}
};
disco::disco(int c,string f, int n)
{
capacidad=c;
fabricante=f;
numserie=n;
}
class disco_musica:public disco{
private:
string tipo; //CD, vinilo, etc.
public:
disco_musica(int c, string f, int n, string t):disco(c,f,n){
tipo=t;}
void imprimir_fabricante() {
cout<<“Capacidad: “<<capacidad<<“\nFabricante: “<<fabricante<<endl;
cout<<“Numero de serie: “<<numserie<<“\nTipo: “<<tipo<<endl;
}
};
void disco::imprimir_fabricante(){
cout<<“Este disco de musica ha sido grabado por: “<<fabricante;
}
int main(){
disco_musica d1(32,”EMI”,423,”CD”);
disco *ptr=&d1;
ptr->imprimir_fabricante(); //clase base
system(“pause>null”);
}
POLIMORFISMO DE SOBRECARGA
POLIMORFISMO PARAMÉTRICO
POLIMORFISMO DE SUBTIPADO
La habilidad para redefinir un método en clases que se hereda de una clase base
se llama especialización. Por lo tanto, se puede llamar un método de objeto sin
tener que conocer su tipo intrínseco: esto es polimorfismo de subtipado. Permite no
tomar en cuenta detalles de las clases especializadas de una familia de objetos,
enmascarándolos con una interfaz común (siendo esta la clase básica).
Imagina un juego de ajedrez con los objetos rey, reina, alfil, caballo, torre y peón,
cada uno heredando el objeto pieza. El método movimiento podría, usando
polimorfismo de subtipado, hacer el movimiento correspondiente de acuerdo a la
clase objeto que se llama. Esto permite al programa realizar el movimiento.de_pieza
sin tener que verse conectado con cada tipo de pieza en particular.