Diferencia entre enlace temprano y tardío en Java

Enlace anticipado: el enlace que el compilador puede resolver en tiempo de compilación se conoce como enlace estático o anticipado. La vinculación de todos los métodos estáticos, privados y finales se realiza en tiempo de compilación.

Ejemplo:

public class NewClass {
    public static class superclass {
        static void print()
        {
            System.out.println("print in superclass.");
        }
    }
    public static class subclass extends superclass {
        static void print()
        {
            System.out.println("print in subclass.");
        }
    }
  
    public static void main(String[] args)
    {
        superclass A = new superclass();
        superclass B = new subclass();
        A.print();
        B.print();
    }
}
Producción:

print in superclass.
print in superclass.

Enlace en tiempo de ejecución: en el enlace en tiempo de ejecución o en el enlace dinámico, el compilador no decide el método que se llamará. La anulación es un ejemplo perfecto de vinculación dinámica. Al anular, tanto las clases principales como las secundarias tienen el mismo método.

Ejemplo:

public class NewClass {
    public static class superclass {
        void print()
        {
            System.out.println("print in superclass.");
        }
    }
  
    public static class subclass extends superclass {
        @Override
        void print()
        {
            System.out.println("print in subclass.");
        }
    }
  
    public static void main(String[] args)
    {
        superclass A = new superclass();
        superclass B = new subclass();
        A.print();
        B.print();
    }
}
Producción:

print in superclass.
print in subclass.

Tabla de diferencias entre enlace temprano y tardío:

Enlace temprano Enlace tardío
Es un proceso en tiempo de compilación. Es un proceso en tiempo de ejecución.
La definición del método y la llamada al método están vinculadas durante el tiempo de compilación. La definición del método y la llamada al método están vinculadas durante el tiempo de ejecución.
El objeto real no se utiliza para vincular. El objeto real se utiliza para el enlace.
Por ejemplo: sobrecarga de métodos Por ejemplo: Anulación de método
La ejecución del programa es más rápida. La ejecución del programa es más lenta.

Publicación traducida automáticamente

Artículo escrito por chaitanyashah707 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *