jueves, 23 de octubre de 2008

Introducción


En el presente trabajo hablaremos del polimorfismo, que es uno de los fundamentos para cualquier lenguaje orientado a Objetos. Esta palabra que significa "múltiples formas", permite a una interface ser usada por una clase general de acciones. La acción concreta a llevar a cabo se determina por la naturaleza específica de la situación.

En ocasiones, cuando se lleva a cabo el procesamiento del polimorfismo es necesario programar “en forma específica”.
Con el polimorfismo es posible diseñar e implementar sistemas que puedan extenderse fácilmente. Pueden agregarse nuevas clases con pocas modificaciones (o si acaso ninguna) a las porciones genéricas del programa, siempre y cuando esa clases formen parte de la jerarquía de herencia que el programa procese en forma genérica. Las únicas partes de un programa que deben alterarse para dar cabida a nuevas clases son aquellos componentes del programa que requiera de un conocimiento directo de las nuevas clases que el programador agregar a la jerarquía.

En términos más generales, el concepto de polimorfismo a menudo se expresa por la frase "una interfaz, múltiples métodos".

Esto significa que es posible diseñar una interfaz genérica para un grupo de actividades relacionadas. Es evidente que esta forma de trabajar ayuda a reducir la complejidad del diseño, pues permite usar una misma interfaz para especificar un conjunto de acciones similares. Será el compilador el que tendrá que seleccionar la acción concreta (esto es, el método) para aplicar en cada situación.

Como estudiantes de Ingeniería de Sistemas, nosotros tenemos que conocer la interfaz general. En el siguiente apartado se relata casos prácticos que ayudará a entender los beneficios del polimorfismo.

En programación orientada a objetos se denomina polimorfismo a la capacidad que tienen objetos de diferentes clases de responder al mismo mensaje o evento.
Esto significa que puede haber muchos mensajes con el mismo nombre, en diferentes clases. Cada Clase responde al mensaje con su código propio (o método).
También se puede aplicar a la propiedad que poseen algunas operaciones de tener un comportamiento diferente dependiendo del objeto (o tipo de dato) sobre el que se aplican.
El polimorfismo sólo es aplicable si cualquiera de los posibles tipos de objetos que se invoquen tienen definida la operación empleada, y los tipos de datos de entrada requeridos y los valores devueltos, más allá de cómo se empleen o calculen, son compatibles entre sí.