Polimorfismo – ActionScript 3.0

Capacidad de una clase para comportarse como diferentes tipos de clases.

Se hace la diferencia entre tipo y clase, es decir, la clase círculo es del tipo FormaGeometrica.

Actionscript:
var c:Circulo = new Circulo(); // Círculo hereda de FormaGeometrica
function medirAncho(a:FormaGeometrica) : void
{
    trace(a.ancho);
}
medirAncho(c);

Esto es posible gracias al polimorfismo, el tipo puede ser la superclase (FormaGeometrica) y el valor siempre será el objeto que pasemos, es decir, si como tipo ponemos la superclase podremos pasar como parámetro cualquiera de las subclases (Circulo, Cuadrado, Triangulo, etc).

Después con is podemos averiguar de que tipo es la clase y actuar de una forma u otra con ella.
Pej.

Actionscript:
function medirAncho(a:FormaGeometrica) : void
{
    if(a is Circle)
    {
        trace(a.radius * 2);
    }
    if(a is Rectangle)
    {
        trace(a.ancho);
    }
}

Cuando hablamos de polimorfismo podemos decir: "Tiene un..."

Deja tu opinión