Ligadura estatica y dinamica
Ligadura estática (o temprana):
• Consiste en realizar el proceso de ligadura en tiempo de compilación según el tipo declarado del objeto alque 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 (otardí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 losmé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 unmé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 desdeuna 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 dela 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 aobjetos.
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 ligaduradiná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...
Regístrate para leer el documento completo.