Lo primero es tener claro el concepto de polimorfismo. Bueno antes de poner el concepto, vamos con ejemplos reales y de ahí comprenderemos de que se trata para poder formar el concepto.

En la vida real usamos nosotros la palabra abrir, pero abrir se puede usar para abrir una ventana, abrir una puerta, abrir una lata de atún, etc.

Como se puede ver en los ejemplos anteriores la palabra es la misma, pero se puede usar para diferentes objetos y la acción varia según el objeto. Por que incluso si hablamos de abrir una puerta, hay diferentes tipos de cerraduras. La palabra abrir la podemos usar para representar dicha acción, pero nosotros no nos centramos en los detalles simplemente indicamos que queremos abrir tal objeto. Es necesario aclarar que en la programación debemos indicar en código como se realizará dicha acción según el objeto.

Un ejemplo sencillo de esto es el de las áreas de dos figuras, un rectángulo y un triangulo, en ambos necesitamos calcular el área, y ambos tienen una base y una altura, pero la forma de calcular el área es diferente, pero sigue siendo el área a calcular.

La clase Figura:

class Figura
{
protected double _b;
protected double _h;
public Figura()
{
_b = 0;
_h = 0;
}
public void establecerBase(double valor)
{
_b = valor;
}
public void establecerAltura(double valor)
{
_h = valor;
}
public virtual double area()
{
return 0;
}
}

La clase FiguraRectangulo:

class FiguraRectangulo : Figura
{
public override double area()
{
return (_b*_h);
}
}

La clase FiguraTriangulo:

class FiguraTriangulo:Figura
{
public override double area()
{
return (_b*_h)/2.0f;
}
}

El ejemplo completo esta en la siguiente liga: http://darkuskyo.net/downloads/POOpolimorfismo.zip

Creado en Microsoft Visual Studio 2015 Community

 

 

Leave a Reply