6.2. - Ligadura Dinámica
6.2. - Ligadura Dinámica
6.2.- Ligadura dinámica. La ligadura dinámica hace posible que sea el tipo de objeto instanciado (obtenido mediante el constructor finalmente
utilizado para crear el objeto) y no el tipo de la referencia (el tipo indicado en la declaración de la variable que apuntará
6.3.- Limitaciones de la
al objeto) lo que determine qué versión del método va a ser invocada. El tipo de objeto al que apunta la variable de tipo
ligadura dinámica.
referencia sólo podrá ser conocido durante la ejecución del programa y por eso el polimorfismo necesita la ligadura
6.4.- Interfaces y polimorfismo. dinámica.
6.5.- Conversión de objetos. En el ejemplo anterior de la clase X y sus subclases A y B, la llamada al método m sólo puede resolverse mediante
Anexo I.- Elaboración de los ligadura dinámica, pues es imposible saber en tiempo de compilación si el método m que debe ser invocado será el
constructores de la clase definido en la subclase A o el definido en la subclase B:
Rectangulo.
Anexo II.- Métodos para las
// Llamada al método m (sin saber si será el método m de A o de B).
clases heredadas Alumno y
obj.m () // Esta llamada será resuelta en tiempo de ejecución (ligadura dinámica)
Profesor.
Anexo III.- Métodos para los
atributos de las clases Alumno y
con
Profesor.
Anexo IV.- Contextos del eXeL
modificador final.
Ejercicio resuelto
Imagínate una clase que represente un instrumento musical genérico (Instrumento) y dos subclases que
representen tipos de instrumentos específicos (por ejemplo Flauta y Piano). Todas las clases tendrán un
método tocarNota, que será específico para cada subclase.
Haz un pequeño programa de ejemplo en Java que utilice el polimorfismo (referencias a la superclase
que se convierten en instancias específicas de subclases) y la ligadura dinámica (llamadas a un método
que aún no están resueltas en tiempo de compilación) con estas clases que representan instrumentos
musicales. Puedes implementar el método tocarNota mediante la escritura de un mensaje en pantalla.
Mostrar retroalimentación
« Anterior Siguiente »