Sei sulla pagina 1di 5

Conocimiento: Polimorfismo, Enlace Dinmico

Prof. Viviana Alvarez Tom

Conocimiento: Polimorfismo
Polimorfismo significa en gramtica mltiples formas.
En programacin orientada al objeto hay varias formas de polimorfismo:
1. Cuando invocamos el mismo nombre de mtodo sobre instancias de distinta
clase
2. Cuando creamos mltiples constructores
3. Cuando va subtipo asignamos una instancia de una subclase a una
referencia a la clase base.
4. Cuando creamos una clase derivada, gracias a la relacin es-un podemos
utilizar instancias de la clase derivada donde se esperaba una instancia de la
clase base. Tambin se conoce como principio de sustitucin.
El objetivo del polimorfismo es la reutilizacin y flexibilidad que se puede obtener de
las diferentes clases. Adems de la facilidad para adaptarse a cambios
Permite cdigo independiente del tipo, y es fcil de escribir y entender.
Al aadir nuevos tipos, tenemos la ventaja de que:
No hay que reescribir cdigo
Los programas son extensibles
El polimorfismo se consigue a travs de:

Por ejemplo:

Interfaces
Clases abstractas
Mtodos polimrficos (sobrescritura y sobrecarga)
Implementacin de Colecciones genricas
Implementacin de Mtodos genricos.

Conocimiento: Polimorfismo, Enlace Dinmico


Prof. Viviana Alvarez Tom

dia
Slo tenemos acceso a atributos de Empleado, pero con la implementacin de Managerbono

Enlace dinmico
Es importante entender qu mtodo es usado al invocar a un nombre que se puede
referir a instancias de distinta clase. Al momento de la compilacin, el compilador
intenta resolver el mtodo que corresponde segn su nombre y parmetros. Si la
superclase y la clase base tienen definido el mismo mtodo, el problema es a cul
llama.
Si el mtodo en la clase declarada para la variable no es privado, static, o final, se
invocar en forma dinmica. Esto es, se invocar el mtodo definido segn el objeto
referenciado por el nombre y no segn la declaracin del nombre.
Por ello, si una clase derivada redefine el mismo mtodo, ste ser invocado para sus
instancias.
El ligado o enlace dinmico se resuelve a tiempo de ejecucin.
Ventajas del enlace dinmico:

Conocimiento: Polimorfismo, Enlace Dinmico


Prof. Viviana Alvarez Tom
1. La sobrescritura de mtodos permite a Java admitir el polimorfismo en tiempo
de ejecucin.
2. El polimorfismo es esencial en la programacin orientada al objeto ya que
permite que una clase general especifique mtodos que sern comunes a todas
las clases derivadas, permitiendo a stas definir la implementacin especfica de
alguno de estos mtodos.
3. Esta forma de polimorfismo dinmico durante la ejecucin es uno de los
mecanismos ms poderosos que ofrece la orientacin a objeto para soportar
reutilizacin de cdigo y robustez.
4. La capacidad que tienen las bibliotecas de cdigo existentes de llamar mtodos
de instancias nuevas de clases sin volver a compilarlos, pero manteniendo a vez
la interfaz abstracta y limpia, es una herramienta poderosa.
Por ejemplo: veamos el siguiente cdigo, fijarse en las asignaciones que son las que la
JVM debe revisar al momento de invocar el mtodo adecuado:

Conocimiento: Polimorfismo, Enlace Dinmico


Prof. Viviana Alvarez Tom

El resultado de la ejecucin del mtodo main es:

Conocimiento: Polimorfismo, Enlace Dinmico


Prof. Viviana Alvarez Tom

Potrebbero piacerti anche