Diferencia Entre Enlace Estático Y Enlace Dinámico

Tabla de contenido:

Diferencia Entre Enlace Estático Y Enlace Dinámico
Diferencia Entre Enlace Estático Y Enlace Dinámico

Vídeo: Diferencia Entre Enlace Estático Y Enlace Dinámico

Vídeo: Diferencia Entre Enlace Estático Y Enlace Dinámico
Vídeo: Enlace estático y dinámico en los lenguajes de programación. | | UPV 2024, Mayo
Anonim

Diferencia clave: enlace estático frente a enlace dinámico

Los lenguajes de programación como Java y C # son compatibles con la programación orientada a objetos (OOP). Permite construir software utilizando objetos. Hay muchos objetos en un sistema de software o un programa. Estos objetos tienen atributos y métodos. Los atributos describen las características. Los métodos describen las acciones que puede realizar el objeto. Los datos se pasan a través de objetos mediante métodos. Los valores requeridos se envían a través de llamadas a métodos con parámetros. La implementación real del método está en la definición del método. Existe un vínculo entre una llamada a un método y una definición de método. Se conoce como vinculante. Hay dos tipos de enlaces. Son vinculantes estáticos y vinculantes dinámicos. La diferencia clave entre el enlace estático y el enlace dinámico es que, en el enlace estático, el enlace se resuelve en el tiempo de compilación, mientras que el enlace dinámico se resuelve en el tiempo de ejecución.que es el momento real de ejecución. Este artículo analiza la diferencia entre estos dos mecanismos vinculantes.

CONTENIDO

1. Descripción general y diferencia clave

2. Qué es la vinculación estática

3. Qué es la vinculación dinámica

4. Similitudes entre la vinculación estática y la vinculación dinámica

5. Comparación lado a lado: vinculación estática frente a vinculación dinámica en forma tabular

6. Resumen

¿Qué es la vinculación estática?

La vinculación es el vínculo entre una llamada de método y las definiciones de método.

Diferencia entre enlace estático y enlace dinámico
Diferencia entre enlace estático y enlace dinámico

Figura 01: Enlace estático y enlace dinámico

Consulte el siguiente programa escrito en Java.

clase pública A {

método de vacío público1 () {

System.out.println ("Método1");

}

método de vacío público2 () {

System.out.println ("Método2");

}

public static void main (String args) {

A obj = nuevo A ();

obj.method1 ();

obj.method2 ();

}

}

Según el programa anterior, se crea un objeto de tipo A. Entonces se llaman al método1 y al método2. Identificar qué método debe llamar para su ejecución se conoce como vinculación. La declaración obj.method1 () llamará al método1 () y obj.method2 () llamará al método2 (). Este enlace es vinculante.

En el enlace estático, el compilador resuelve el enlace en tiempo de compilación. También se conoce como enlace anticipado. La vinculación ocurre antes de que un programa se ejecute realmente. El enlace estático se produce en la sobrecarga de métodos. Consulte el siguiente programa escrito en Java.

cálculo de vacío público {

suma vacía pública (int x, int y) {

System.out.println ("La suma es", x + y);

}

suma vacía pública (doble x, doble y) {

System.out.println ("La suma es", x + y);

}

public static void main (String args) {

Cal de cálculo = nuevo cálculo ();

cal.sum (2,3);

suma cal. (5,1, 6,4);

}

}

Según el programa anterior, al pasar los dos enteros, se invocará el método con dos enteros. Al pasar dos valores dobles, se invocará el método correspondiente a dos valores dobles. Este proceso de vinculación ocurre en el momento de la compilación. El compilador sabe que debe llamar al método sum con dos valores enteros para cal.sum (2,3). Para cal (5.1,6.4), llamará al método de suma con dos valores dobles. 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.

¿Qué es el enlace dinámico?

En Dynamic Binding, el compilador no resuelve el enlace en tiempo de compilación. El enlace se produce en tiempo de ejecución. También se conoce como enlace tardío. La vinculación dinámica se produce en la sustitución del método. Consulte el programa escrito en Java.

Forma de clase pública () {

dibujo vacío público () {

System.out.println ("Dibujar forma");

}

}

círculo de clase pública () extiende Forma {

dibujo vacío público () {

System.out.println ("Dibujar círculo");

}

}

Triángulo de clase pública () extiende Forma {

dibujo vacío público () {

System.out.println ("Dibujar triángulo");

}

}

Prueba de clase pública {

public static void main (String args) {

Forma s;

s = nueva forma ();

s.draw ();

s = nuevo círculo ();

s.draw ();

s = nuevo Triángulo ();

s.draw ();

}

}

De acuerdo con el programa anterior, la clase Shape tiene un método draw (). Class Circle y class Triangle amplían la clase Shape. Class Circle y class Triangle pueden heredar los atributos y métodos de la clase Shape. Por lo tanto, la clase Shape es la superclase o clase padre. Class Circle y Class Triangle son subclases o clases derivadas. Estas clases también tienen el método draw () con sus propias implementaciones. Por lo tanto, se anula el método draw () de la superclase.

En el método principal, se invocan diferentes objetos. Hay una variable de referencia de tipo Shape, que es s. Luego, s invoca el método según la clase específica. En el momento de la compilación, el compilador solo hará referencia al método de dibujo de la superclase. Cuando comience la ejecución real, dará lugar a la ejecución de diferentes métodos de dibujo. Primero, s apuntará al objeto de tipo Shape. Por lo tanto, invocará el método de dibujo en la clase Shape. Entonces la s apuntará al objeto de tipo Circle, e invocará el método de dibujo de la clase Circle. Finalmente, s se referirá al objeto de tipo Triangle e invocará el método de dibujo en la clase Triangle. Aunque la variable de referencia es de tipo Shape, la vinculación depende del tipo de objeto. Este concepto se conoce como enlace dinámico. La información 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 estático.

¿Cuál es la similitud entre el enlace estático y el enlace dinámico?

Ambos están relacionados con un polimorfismo que permite que un objeto se comporte de múltiples formas

¿Cuál es la diferencia entre enlace estático y enlace dinámico?

Diferencia del medio del artículo antes de la mesa

Enlace estático vs enlace dinámico

El enlace estático es el tipo de enlace que recopila toda la información necesaria para llamar a una función durante el tiempo de compilación. El enlace dinámico es el tipo de enlace que recopila toda la información necesaria para llamar a una función durante el tiempo de ejecución.
Tiempo de unión
El enlace estático se produce en tiempo de compilación. El enlace dinámico se produce en tiempo de ejecución.
Funcionalidad
El enlace estático utiliza información de tipo para el enlace. La vinculación dinámica utiliza objetos para resolver la vinculación.
Objeto real
El enlace estático no utiliza un objeto real para el enlace. Enlace dinámico, utilice el objeto real para el enlace.
Sinónimos
El enlace estático también se conoce como enlace temprano. El enlace dinámico también se conoce como enlace tardío.
Ejecución
La velocidad de ejecución es rápida en enlace estático. La velocidad de ejecución es baja en enlace dinámico.
Ejemplo
El enlace estático se utiliza en la sobrecarga de métodos. El enlace dinámico se utiliza en la sustitución de métodos.

Resumen: enlace estático frente a enlace dinámico

Existe un vínculo entre una llamada a un método y una definición de método. Se conoce como vinculante. Hay dos tipos de enlaces denominados enlace estático y enlace dinámico. La diferencia entre el enlace estático y el enlace dinámico es que en el enlace estático, el enlace se resuelve en el momento de la compilación, mientras que el enlace dinámico se resuelve en el tiempo de ejecución, que es el momento real de ejecución. Como la información requerida se proporciona antes del tiempo de ejecución, el enlace estático es de ejecución rápida en comparación con el enlace dinámico.

Descargue el PDF de Enlace estático vs Enlace dinámico

Puede descargar la versión PDF de este artículo y usarla para fines sin conexión según la nota de cita. Descargue la versión PDF aquí: Diferencia entre enlace estático y enlace dinámico

Recomendado: