Está en la página 1de 4

Polimorfismo

La capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los
parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de
diferentes tipos durante la ejecución del programa.

Polimorfismo

En programación orientada a objetos, el polimorfismo se refiere a la propiedad por la que es posible enviar mensajes
sintácticamente iguales a objetos de tipos distintos. El único requisito que deben cumplir los objetos que se utilizan
de manera polimórfica es saber responder al mensaje que se les envía.

La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de las obvias
diferencias sintácticas.

Por ejemplo, en un lenguaje de programación que cuenta con un sistema de tipos dinámico (en los que las variables
pueden contener datos de cualquier tipo u objetos de cualquier clase) como Smalltalk no se requiere que los objetos
que se utilizan de modo polimórfico sean parte de una jerarquía de clases.

En lenguajes basados en clases y con un sistema de tipos de datos fuerte (independientemente de si la verificación
se realiza en tiempo de compilación o de ejecución), es posible que el único modo de poder utilizar objetos de
manera polimórfica sea que compartan una raíz común, es decir, una jerarquía de clases, ya que esto proporciona la
compatibilidad de tipos de datos necesaria para que sea posible utilizar una misma variable de referencia (que podrá
apuntar a objetos de diversas subclases de dicha jerarquía) para enviar el mismo mensaje (o un grupo de mensajes)
al grupo de objetos que se tratan de manera polimórfica.

No obstante, el uso de una jerarquía de clases como paso previo, es muy habitual incluso en aquellos lenguajes en
los que es posible prescindir de tal jerarquía, ya que, desde una perspectiva conceptual, se puede decir que al
pertenecer los “objetos polimórficos” a subclases de una misma jerarquía, se asegura la equivalencia semántica de
los mensajes que se invocarán de modo polimórfico. Por esto, en programación orientada a objetos a veces se
denomina al polimorfismo como “polimorfismo de subclase (o de subtipo)”.

En resumen, en la programación orientada a objetos, la esencia del polimorfismo no atañe a la clase o prototipo de
la que provienen los objetos. Aun así, en los lenguajes basados en clases, es habitual (y en algunos tal vez sea el
único modo) que dichos objetos pertenezcan a subclases pertenecientes a una misma jerarquía. Entonces, el
polimorfismo debe verse como una forma flexible de usar un grupo de objetos (como si fueran sólo uno). Podría
decirse que el polimorfismo en esencia refiere al comportamiento de los objetos, no a su pertenencia a una jerarquía
de clases (o a sus tipos de datos).

Polimorfismo

Es la habilidad que poseen los objetos para reaccionar de modo diferente ante los mismos mensajes.

El polimorfismo se refiere a la posibilidad de definir múltiples clases con funcionalidad diferente, pero con métodos
o propiedades denominados de forma idéntica, que pueden utilizarse de manera intercambiable mediante código
cliente en tiempo de ejecución.

En C# el polimorfismo está íntimamente relacionado con la sobrecarga y métodos virtuales.

Conceptos relacionados con polimorfismo:

Sobrecarga (overload)

Herencia

Sobrescritura (override)
Sobrecarga [ Overload ]

La sobrecarga representa diferentes maneras de realizar una misma acción.

En los programas se usa el mismo nombre en diferentes métodos con diferentes firmas [número, orden y tipo de los
parámetros].

Ejemplo de Sobrecarga:

miPuerta.Abrir ( Adentro, Afuera)

miPuerta.Abrir ( Afuera, Adentro)

miPuerta.Abrir ( )

Herencia
Sobrescritura [ Overriding ]

Sucede cuando una clase “B” hereda características de una clase “A”, pero la clase “B” re-define las características
heredadas de “A”.

Propiedades y métodos pueden heredarse de una superclase. Si estas propiedades y métodos son re-definidos en la
clase derivada, se dice que han sido “sobrescritos”.

Ejemplo: Articulos académicos: miLibro y miLaptop heredan el método Abrir ( ) pero NO lo utilizan; sino

que cada uno lo implementa nuevamente de manera distinta.

Metodos: Abrir

Herencia: Libro y laptop Un libro y una Laptop se abren de diferente manera

miLibro.Abrir( ) miLaptop.Abrir( )

TIPOS DE POLIMORFISMO

POLIMORFISMO:

POLI= MULTIPLES MORFISMO= FORMAS

MiNevera.Abrir(“Puerta de Abajo”)

MiNevera.Abrir(“Puerta de Arriba”.”Mitad”)

También podría gustarte