Polimorfismo

Solo disponible en BuenasTareas
  • Páginas : 5 (1183 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de enero de 2012
Leer documento completo
Vista previa del texto
UNIDAD 6.- 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 polimorfismo de plantillas)
* Polimorfismo de inclusión(también llamado redefinición o subtipado)

Polimorfismo 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 serclases secundarias de la clase objeto).
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.
Polimorfismo de subtipado
Lahabilidad 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.

Clases Abstractas
Cuando pensamos en una clase como un tipo, asumimos que los programas crearán objetos de ese tipo. Sin embargo, hay casos en que es útil definirclases para las cuales no se desea instanciar objetos. Tales clases son llamadas clases abstractas. Debido a que normalmente son utilizadas como base en jerarquías de clases, nos referiremos a ellas como clases base abstracta. Las clases abstractas no sirven para instanciar objetos porque están incompletas, siendo sus clases derivadas las que deberán definir las partes faltantes.
El propósito de unaclase abstracta es proveer una clase base apropiada desde la cual otras clases hereden.
Las clases desde las cuales se pueden instanciar objetos se llaman clases concretas. Tales clases proveen implementaciones de cada método o propiedad que definen.
Las clases abstractas normalmente contienen uno o más métodos o propiedades abstractas, las cuales no proveen implementación. Las clasesderivadas deben reemplazar los métodos abstractos heredados para permitir la instanciación de objetos.
Interfaces
Una interfaz en Java es una colección de métodos abstractos y propiedades. En ellas se especifica qué se debe hacer pero no su implementación. Serán las clases que implementen estas interfaces las que describan la logica del comportamiento de los métodos.
* Ventajas
El uso deinterfaces proporciona las siguientes ventajas:
* Organizar la programación (IAJU).
* Obligar a que ciertas clases utilicen los mismos métodos (nombres y parámetros).
* Establecer relaciones entre clases que no estén relacionadas.
* Uso
Java proporciona dos palabras reservadas para trabajar con interfaces: interface e implements.
Variables polimórficas (Plantillas)Genericidad(plantillas o templates)
Clases o métodos parametrizados (algunos tipos se dejan sin definir).
Forma de crear herramientas de propósito general (clases, métodos) y especializarlas para situaciones específicas.

Reutilización del código
Dado que una variable de un determinado tipo puede estar en realidad almacenando un objeto que sea de algún tipo hijo del tipo de la variable y en ese caso através de la variable sólo puede accederse a aquellos miembros del verdadero tipo del objeto que sean comunes con miembros del tipo de la variable que referencia al objeto, muchas veces nos va a interesar que una vez que dentro de un método genérico hayamos determinado cuál es el verdadero tipo de un objeto. Al tener clases hijas reutilizamos el código una o mas veces

UNIDAD 7.-Excepciones...
tracking img