miércoles, 17 de noviembre de 2010

*Polimorfismo en Programación Orientada a Objetos

Materia: Laboratorio de Lenguajes de Programación
Hora: Jueves v1


Hola a todos, en está entrada les hablaré un poco más a fondo sobre el Poliformismo en Programación Orientada a Objetos.

Se dice que Poliformismo es la capacidad para que varias clases derivadas de una antecesora utilicen un mismo método de forma diferente. Por ejemplo: Si creamos dos clases distintas: Pez y Ave que heredan de la superclase Animal, la clase Animal tiene el método abstracto mover que se implementa de forma distinta en cada una de las subclases, que los peces y las aves se mueven de forma distinta.

El concepto de Polimorfismo se puede aplicar a funciones y a tipos de datos, de ésto se derivan los términos funciones polimórficas y tipos polimórficos.

Las funciones polimórficas son las que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta.

Los tipos polimórficos son los tipos de datos que contienen al menos un elemento cuyo tipo no está especificado.


*Se puede clasificar el polimorfismo en dos grandes clases:



- Polimorfismo dinámico : que también es llamado polimorfismo paramétrico, es el que en el código no incluye ningún tipo de especificación sobre el tipo de datos en el que se trabaja, entonces puede ser utilizado a todo tipo de datos compatible.


- Polimorfismo estático: que también es llamado polimorfismo ad hoc es en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de poder ser utilizados.


El polimorfismo dinámico unido a la herencia es lo que llamamos programación genérica.

*Otra clasificación agrupa los polimorfismo en dos tipos:

 - Ad-Hoc: que incluye una sobrecarga de operadores y coerción.
 - Universal: que es controlado por la herencia, paramétrico o genericidad.


 
*Algunas diferencias entre Polimorfismo y Sobrecarga son:
 
- El polimorfismo que permite crear nuevos tipos sin necesidad de tocar las clases ya existentes, encambio en una sobrecarga durante el diseño exigiría retocar la clase anteriormente creada al añadir la nueva operación, por lo que tendrias que revisar todo el código donde se instancia a la clase.



- La sobrecarga se da siempre dentro de una sola clase, mientras que el polimorfismo se da entre clases distintas.


- Un método está sobrecargado si dentro de una clase existen dos o más declaraciones de dicho método con el mismo nombre pero con parámetros distintos.


- La sobrecarga se resuelve en tiempo de compilación utilizando los nombres de los métodos y los tipos de sus parámetros y el polimorfismo se resuelve en tiempo de ejecución del programa, en función de que clase pertenece un objeto.





                                


          

Bueno esto es todo sobre mi entrada, espero les sea útil. Saludos :)

1 comentario: