Está en la página 1de 2

FUNDAMENTOS DE PROGRAMACIÓN ORIENTADA A OBJETOS

TECNICATURA UNVERSITARIA EN DISEÑO INTEGRAL DE VIDEOJUEGOS


FACULTAD DE INGENIERÍA
Universidad Nacional de Jujuy
Polimorfismo

Introducción

El polimorfismo es una propiedad del paradigma de objetos, en este caso la última que estamos
estudiando (las anteriores fueron abstracción, encapsulación y la herencia). Esta propiedad permite
trabajar de manera general, en lugar de trabajar de manera específica. Trabajar de manera general
permite facilitar la tarea de escalabilidad de la aplicación orientada a objetos. La escalabilidad hace
referencia a la posibilidad de poder ir aumentando la complejidad y los servicios que provee la
aplicación.

El tipo de polimorfismo que estudiaremos será el polimorfismo limitado. Este tipo de polimorfismo
requiere de la presencia previa de la herencia simple. La herencia simple implica que una clase solo
puede heredar a lo sumo de una única otra clase.

Esta particularidad nos permitirá escribir programas que procesan objetos que compartan la misma
superclase (ya sea de manera directa o indirecta [esto es usar interfaces]) como si todos fueran
objetos de la superclase. Suponga que crea una aplicación que deba simular el movimiento de
varios tipos de animales para un juego con vista desde arriba. En este tipo de juegos el movimiento
será en dos dimensiones. Las clases Pez, Rana y Ave representan los tipos de animales que se
están evaluando programar. Además estas clases heredan de la clase Animal, la cual contiene una
operación denominada mover() que a su vez devuelve la posición actual del animal luego de realizar
el movimiento (esto es los valores x e y de una plano). Como puede imaginar cada tipo de animal
se mueve de manera diferente, entonces lo más conveniente sería que cada uno de ellos sobre
escriba la operación mover, lo cual en términos del diagrama de clases sería equivalente a

Entonces podemos afirmar que no solamente se requiere la herencia simple, sino que además debe
usarse la sobreescritura de las operaciones para poder aplicar el polimorfismo. Llegado a este
punto, ¿qué es el polimorfismo?

Suponga que el programa mantiene un arreglo de tipo Animal, donde cada una de las referencias
de este tipo corresponden a alguna de las subclases. Entonces para simular el movimiento de cada
animal, a cada elemento del arreglo se le envía el “mismo mensaje”, es decir se invoca la operación
mover() del objeto de tipo Animal. Pero por la sobreescritura, el resultado al “mismo mensaje”

Página 1 Mg. Ing. Ariel Alejandro Vega


FUNDAMENTOS DE PROGRAMACIÓN ORIENTADA A OBJETOS
TECNICATURA UNVERSITARIA EN DISEÑO INTEGRAL DE VIDEOJUEGOS
FACULTAD DE INGENIERÍA
Universidad Nacional de Jujuy
Polimorfismo

dependerá de la implementación que se realizó en la operación realizada en cada clase en


particular. Esta capacidad para responder a un mismo mensaje de manera diferente que poseen los
objetos se denomina polimorfismo, específicamente polimorfismo limitado, el cual
esquemáticamente para este ejemplo en particular estaría representado de la siguiente manera:

Con este esquema se puede confiar en que cada objeto sabrá como “hacer lo correcto” (es decir,
lo apropiado para ese tipo de objeto) respecto de la manera en que debe realizar la operación
mover() de manera independiente a los otros tipos de animales.

En este esquema, observe que en este tipo de polimorfismo el efecto polimórfico es disparado por
un método que recibe en dependencia un objeto de la superclase, desde el cual se invoca el método
sobreescrito. Esto significa que para obtener el resultado de las “muchas formas diferentes” que
adquiere un mismo mensaje (en este aso simularMovimeintoAnimal) la superclase debe ser
instanciada por medio de alguna de sus subclases, ya que de no ser así sería imposible que se
manifieste la sobreescritura.

De manera formal, el polimorfismo es la propiedad del paradigma orientado a objetos que posibilita
que un objeto responda de diferente manera a un mismo mensaje. Específicamente, el
polimorfismo limitado es aquel en el que el comportamiento polimórfico se obtiene al instanciar
un objeto de una clase a partir de una de sus subclases, de tal manera que la sobreescritura genera
el efecto de una respuesta diferente al mismo mensaje.

Ventajas estructurales del polimorfismo

Gracias a polimorfismo es posible extender con facilidad los requerimientos de la aplicación


(escalabilidad): pueden agregarse nuevas clases con solo modificar un poco (o nada) las porciones
generales del programa, siempre y cuando las nuevas clases sean parte de la jerarquía de herencia
que el programa procesa en forma genérica.

Observe los videos “La lógica del polimorfismo explicada con Minecraft y ”La mejor técnica para
programar videojuegos sin perder el tiempo: polimorfismo. Luego realice en grupo la actividad
solicitada.

Página 2 Mg. Ing. Ariel Alejandro Vega

También podría gustarte