You are on page 1of 3

Garcia gonzalez Dario Ruben ISC grupo A

Definición de polimorfismo Definición de polimorfismo La palabra polimorfismo proviene del griego y significa que posee varias formas diferentes. Este es uno de los conceptos esenciales de una programación orientada a objetos. Así como la herencia está relacionada con las clases y su jerarquía, el polimorfismo se relaciona con los métodos.En general, hay tres tipos de Polimorfismo: Polimorfismo de sobrecarga· Polimorfismo paramétrico (también llamado polimorfi smo de plantillas)· Polimorfismo de inclusión (también llamado redefinición)Polimor fismo de sobrecarga El polimorfismo de sobrecarga ocurre cuando las funciones del mismo nombre existen, con funcionalidad similar, en clases que son completamente independientes una de otra (éstas no tienen que ser clases secundarias de la clase objeto). Por ejemplo, la clase complex, la clase image y la clase link pueden todas tener la función “display”. Esto significa que no necesitamos preocuparnos sobre el tipo de objeto con el que estamos trabajando si todo lo que deseamos es verlo en la pantalla. Por lo tanto, el polimorfismo de sobrecarga nos permite definir operadores cuyos comportamientos varían de acuerdo a los parámetros que se les aplican. Así es posible, por ejemplo, agregar el operador + y hacer que se comporte de manera distinta cuando está haciendo referencia a una operación entre dos números enteros (suma) o bien cuando se encuentra entre dos cadenas de caracteres (concatenación).Polimorfismo paramétrico El polimorfismo paramétrico es la capacidad para definir varias funciones utilizando el mismo nombre, pero usando parámetros diferentes (nombre y/o tipo). El polimorfismo paramétrico selecciona automáticamente el método correcto a aplicar en función del tipo de datos pasados en el parámetro. Por lo tanto, podemos por ejemplo, definir varios métodos homónimos de adición()efectuando una suma de valores. El método int addition(int,int) devolvería la suma de dos números enteros. Float addition(float, float) devolvería la suma de dos flotantes. Char addition(char, char) daría por resultado la suma de dos caracteres definidos por el autor. Una signatura es el nombre y tipo (estático) que se da a los argumentos de una función. Por esto, una firma de método determina qué elemento se va a llamar. Polimorfismo de subtipado La habilidad para redefinir un método en clases que se hereda de una clase base se llama especialización. Por lo tanto, se puede llamar un método de objeto sin tener que conocer su tipo intrínseco: esto es polimorfismo de subtipado.

Garcia gonzalez Dario Ruben ISC grupo A

Permite no tomar en cuenta detalles de las clases especializadas de una familia de objetos, enmascarándolos con una interfaz común (siendo esta la clase básica).Imagine un juego de ajedrez con los objetos rey, reina, alfil, caballo, torre y peón, cada uno heredando el objeto pieza. El método movimiento podría, usando polimorfismo de subtipado, hacer el movimiento correspondiente de acuerdo a la clase objeto que se llama. Esto permite al programa realizar el movimiento de pieza sin tener que verse conectado con cada tipo de pieza en particular. Clase abstracta. Hay ocasiones, cuando se desarrolla una jerarquía de clases en que algún comportamiento está presente en todas ellas pero se materializa de forma distinta para cada una. Por ejemplo, pensemos en una estructura de clases para manipular figuras geométricas. Podríamos pensar en tener una clase genérica, que podría llamarse FiguraGeometrica y una serie de clases que extienden a la anterior que podrían ser Círculo, Polígono, etc. Podría haber un método dibujar dado que sobre todas las figuras puede llevarse a cabo esta acción, pero las operaciones concretas para llevarla a cabo dependen del tipo de figura en concreto (de su clase). Por otra parte la acción dibujar no tiene sentido para la clase genérica FiguraGeometrica, porque esta clase representa una abstracción del conjunto de figuras posibles. Para resolver esta problemática Java proporciona las clases y métodos abstractos. Un método abstracto es un método declarado en una clase para el cual esa clase no proporciona la implementación (el código). Una clase abstracta es una clase que tiene al menos un método abstracto. Una clase que extiende a una clase abstracta

Debe implementar los métodos abstractos (escribir el código) o bien volverlos a declarar como abstractos, con lo que ella misma se convierte también en claseabstracta .Concepto de una clase genérica en java. En el momento de escribir una clase se debe conocer con qué tipo de datos va a interactuar, sin embargo esto no siempre es conocido. Por lo tanto se debería poder definir una clase con la ayuda de un “contenedor” al cual nos referimos como si fuera el tipo sobre el que opera la clase. La definición actual de la clase es creada una vez que declaramos un objeto en particular. Los tipos genéricos, también llamados tipos parame trizados , permiten definir un tipo sin especificar todos los tipos que éste usa. Estos serán suministrados como parámetros en punto de instanciación. Los cambios son realizados por tanto entiempo de compilación. Los tipos parame trizados se utilizan especialmente para implementar tipos abstractos de datos: pilas, colas, anillos, bolsas y otros que permiten almacenar distintos tipos de elementos según sean

Garcia gonzalez Dario Ruben ISC grupo A

instanciados en tiempo de compilación. Los tipos genéricos han sido usados por otros lenguajes durante años, como por ejemplo la plantillas en C++, tipos genéricos en Ada, polimorfismo paramétrico en ML y Haskell, y a hora, debido a la demanda popular, los tipos genéricos están siendo añadidos en Java 1.5.

Bibliografía.
1.- Enciclopedia del lenguaje C. Fco Javier Ceballos Sierra, Editorial Computec.2. METODOLOGÍA DE LA PROGRAMACIÓN. Diagramas de flujo, Algoritmos yProgramación estructurada. Luis Joyanes Aguilar, McGraw-Hill3. - An introduction to Object- Oriented Programming. Timothy Budd. Addison WesleyPublishing Company.