La unión temprana y la unión tardía son dos conceptos relacionados con el polimorfismo. El enlace anticipado se produce en tiempo de compilación, mientras que el enlace tardío se produce en tiempo de ejecución. los diferencia clave entre la unión temprana y tardía es que Early Binding usa la información de la clase para resolver la llamada de método mientras que Late Binding usa el objeto para resolver la llamada de método.
Los lenguajes de programación como Java admiten la Programación Orientada a Objetos (OOP). Es un paradigma que permite construir el programa o el software utilizando objetos. Hay múltiples objetos en el software. Estos objetos están conectados entre sí y pasan mensajes utilizando métodos. Cada objeto tiene características y comportamientos. Las características están descritas por las propiedades o atributos. Los comportamientos se describen utilizando métodos. El objeto Estudiante puede tener características tales como nombre, edad y están representados por propiedades. El objeto El alumno puede tener comportamientos como estudiar y leer, y están representados por métodos. Un pilar importante de la OOP es el polimorfismo. Permite que un objeto se comporte de múltiples maneras. La unión temprana y la unión tardía son dos conceptos en el polimorfismo. Los métodos de sobrecarga se unen mediante la unión temprana. Los métodos anulados se enlazan mediante un enlace tardío.
1. Resumen y diferencia clave
2. ¿Qué es la unión temprana?
3. ¿Qué es la vinculación tardía?
4. Similitudes entre la unión temprana y tardía
5. Comparación lado a lado: unión temprana vs tardía en forma tabular
6. Resumen
En Early Binding, la información de clase se usa para resolver la llamada de métodos. La vinculación temprana se produce en tiempo de compilación. También se conoce como el enlace estático. En este proceso, el enlace se produce antes de que el programa se ejecute realmente. Los métodos de sobrecarga se unen mediante la unión temprana. Consulte el siguiente programa.
Figura 01: Clase de cálculo
Figura 02: Programa principal de encuadernación temprana
De acuerdo con el programa anterior, la clase de cálculo contiene un método de adición que acepta dos valores enteros y otro método de adición que acepta dos valores dobles. En el programa principal, se crea un objeto de tipo Cálculo. Al pasar dos enteros al método de agregar, invocará el método de agregar que acepta dos enteros. Al pasar dos valores dobles al método de adición, invocará el método correspondiente a dos valores dobles. Este proceso de enlace se produce en tiempo de compilación. Toda la información requerida se conoce antes del tiempo de ejecución, por lo que aumenta la eficiencia del programa y la velocidad de ejecución.
En Enlace tardío, el objeto se utiliza para resolver la llamada de método. La vinculación tardía se produce en tiempo de ejecución. También es conocido como enlace dinámico. En este proceso, el enlace se produce en la ejecución del programa. Los métodos anulados se enlazan mediante un enlace tardío. Consulte el siguiente programa.
Figura 03: Clase de forma
Figura 04: Clase de círculo
Figura 05: Clase de triángulo
Figura 06: Programa principal de encuadernación tardía
De acuerdo con el programa anterior, la clase Shape tiene un método de sorteo. La clase Círculo y la clase Clase de triángulo amplían la clase Forma. Por lo tanto, estas dos clases pueden heredar los atributos y métodos de la clase Shape. La clase de forma es la clase base. Las clases de círculo y triángulo son clases derivadas. La clase Círculo y la clase Triángulo también tienen el método de dibujo con sus propias implementaciones. Por lo tanto, el método de dibujo en la clase de Forma se reemplaza por los métodos de dibujo de las clases derivadas.
En el programa principal, se crea una variable de referencia s de tipo Shape. En el momento de la compilación, el compilador solo referirá el método de dibujo de la clase base. En tiempo de ejecución, se ejecutarán diferentes métodos de sorteo. Primero, s apuntará al objeto de tipo Shape. Por lo tanto, se invoca el método de dibujo de la clase Shape. Luego, la s apuntará al objeto de tipo Círculo e invocará el método de dibujo de la clase Círculo. Finalmente, s apuntará al objeto de tipo Triángulo e invocará el método de dibujo en la clase Triángulo. Los métodos se llaman en función de los objetos. Por lo tanto, el objeto se utiliza para resolver el método de llamada en el enlace tardío. La información requerida para el enlace se proporciona en tiempo de ejecución, por lo que la velocidad de ejecución es más lenta en comparación con el enlace temprano.
Unión temprana vs Unión tardía | |
El proceso de usar la información de clase para resolver la llamada de método que ocurre en tiempo de compilación se llama Enlace anticipado. | El proceso de usar el objeto para resolver el método de llamada que se produce en el tiempo de ejecución se denomina el enlace tardío. |
Tiempo de encuadernación | |
La vinculación temprana ocurre en tiempo de compilación. | La vinculación tardía ocurre en el tiempo de ejecución. |
Funcionalidad | |
Early Binding usa la información de la clase para resolver el método de llamada. | El enlace tardío usa el objeto para resolver la llamada de método. |
Sinónimos | |
La unión temprana también se conoce como unión estática ... | La unión tardía también se conoce como unión dinámica. |
Ocurrencia | |
Los métodos de sobrecarga se unen mediante la unión temprana. | Los métodos anulados se enlazan mediante un enlace tardío. |
Velocidad de ejecución | |
La velocidad de ejecución es más rápida en el enlace temprano. | La velocidad de ejecución es menor en el enlace tardío. |
OOP se utiliza comúnmente para el desarrollo de software. Un pilar importante de la OOP es el polimorfismo. La vinculación temprana y la vinculación tardía están relacionadas con eso. La vinculación temprana se produce en tiempo de compilación mientras que la vinculación tardía se produce en tiempo de ejecución En la sobrecarga de métodos, la unión se realiza utilizando el enlace inicial. En el método de anulación, la unión se realiza mediante el enlace tardío. La diferencia entre Early Binding y Early Binding es que Early Binding usa la información de la clase para resolver las llamadas de método, mientras que Late Binding usa el objeto para resolver las llamadas de método..
1.Java Entrevista 04 - Enlace Estático Vs Enlace Dinámico, Tutoriales de Mahika, 27 de diciembre de 2017. Disponible aquí
2.Método dinámico de envío en Java | Core Java Tutorial | Studytonight. Disponible aquí