Ligadura Dinámica

La ligadura se encarga de ligar o relacionar la llamada a un método (mensaje) con el cuerpo del método que se ejecuta finalmente.

Existen dos tipos de ligadura: estática y dinámica.

Ligadura estática (o temprana):

• Consiste en realizar el proceso de ligadura en tiempo de compilación según el tipo declarado del objeto al que se manda el mensaje.

• La utilizan (en Java) los métodos de clase y los métodos de instancia que son privados o final (ya que estos últimos no pueden ser sobrescritos).

Ligadura dinámica (o tardía):

• Consiste en realizar el proceso de ligadura en tiempo de ejecución siendo la forma dinámica del objeto la que determina la versión del método a ejecutar.

• Se utiliza en todos los métodos de instancia de Java que no son privados ni final.

Funcionamiento de la Ligadura Dinámica

Resolución de conflictos entre Superclases y Subclases:

• Cuando existe un conflicto entre un método de una superclase y un método de la subclase, el comportamiento correcto es que el método de la subclase sobrescriba al de la superclase.

• Si estamos llamando a un método de la subclase desde una variable que ha sido declarada del tipo de la superclase. ¿Cómo se consigue que funcione correctamente?

Ligadura Dinámica:

• Significa que la forma dinámica del objeto determina la versión de la operación que se aplicara.

• Esta capacidad de las operaciones para adaptarse automáticamente a los objetos a los cuales se aplican es una de las propiedades más importantes de la orientación a objetos.

Características de la Ligadura Dinámica

Puede variar de un lenguaje a otro, pero básicamente presentan unas características comunes. Los métodos que necesitan ligadura dinámica:

• Deben presentar ligadura dinámica solo aquellos que pueden ser redefinidos.

• Por ejemplo, en Java, los métodos de clase y los métodos de instancia privados y/o finales no presentan ligadura dinámica.

• En Java, si no se especifica nada se entenderá que el método puede ser redefinido y por tanto debe presentar ligadura dinámica.

• En otros lenguajes, como Object Pascal o C++, los métodos por defecto presentan ligadura estática, si queremos que su ligadura sea dinámica es necesario incluirle la directiva virtual (por eso los métodos con ligadura dinámica se conocen como métodos virtuales).

 

Hola a tod@s bienvenidos a Programación Orientada a Objetos
 
Hoy habia 9 visitantes (10 clics a subpáginas) ¡Aqui en esta página!
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis