Différence entre la liaison statique et la liaison dynamique

Table des matières:

Différence entre la liaison statique et la liaison dynamique
Différence entre la liaison statique et la liaison dynamique

Vidéo: Différence entre la liaison statique et la liaison dynamique

Vidéo: Différence entre la liaison statique et la liaison dynamique
Vidéo: Polymorphisme et liaisons dynamiques | Martine Bellaïche 2024, Juillet
Anonim

Différence clé - Liaison statique vs liaison dynamique

Les langages de programmation tels que Java et C prennent en charge la programmation orientée objet (POO). Il permet de construire des logiciels à l'aide d'objets. Il existe de nombreux objets dans un système logiciel ou un programme. Ces objets ont des attributs et des méthodes. Les attributs décrivent les caractéristiques. Les méthodes décrivent les actions qui peuvent être effectuées par l'objet. Les données sont transmises à travers des objets à l'aide de méthodes. Les valeurs requises sont envoyées via des appels de méthode avec des paramètres. L'implémentation réelle de la méthode se trouve dans la définition de la méthode. Il existe un lien entre un appel de méthode et une définition de méthode. C'est ce qu'on appelle la reliure. Il existe deux types de reliures. Il s'agit de la liaison statique et de la liaison dynamique. le différence clé entre la liaison statique et la liaison dynamique est que, dans la liaison statique, la liaison est résolue au moment de la compilation tandis que la liaison dynamique est résolue au moment de l'exécution, qui est l'heure réelle de l'exécution. Cet article traite de la différence entre ces deux mécanismes de liaison.

Qu'est-ce que la liaison statique ?

La liaison est le lien entre un appel de méthode et les définitions de méthode.

Différence entre la liaison statique et la liaison dynamique
Différence entre la liaison statique et la liaison dynamique

Figure 01: Liaison statique et liaison dynamique

Référez-vous au programme ci-dessous écrit en Java.

classe publique A{

méthode vide publique1(){

System.out.println(“Method1”);

}

méthode vide publique2(){

System.out.println(“Method2”);

}

public static void main(String args){

Un obj=nouveau A();

obj.method1();

obj.method2();

}

}

Selon le programme ci-dessus, un objet de type A est créé. Ensuite method1 et method2 sont appelées. L'identification de la méthode à appeler pour l'exécution est connue sous le nom de liaison. L'instruction obj.method1() appellera method1() et obj.method2() appellera method2(). Ce lien est obligatoire.

Dans la liaison statique, la liaison est résolue au moment de la compilation par le compilateur. Il est également connu sous le nom de liaison précoce. La liaison se produit avant qu'un programme ne s'exécute réellement. La liaison statique se produit dans la surcharge de méthode. Reportez-vous au programme ci-dessous écrit en Java.

Calcul du vide public{

public void sum(int x, int y){

System.out.println(“La somme est , x+y);

}

public void sum(double x, double y){

System.out.println(“La somme est , x+y);

}

public static void main(String args){

Calcul cal=nouveau Calcul();

cal.sum(2, 3);

cal.sum(5.1, 6.4);

}

}

Selon le programme ci-dessus, lors du passage des deux entiers, la méthode avec deux entiers sera invoquée. Lors du passage de deux valeurs doubles, la méthode correspondant à deux valeurs doubles sera invoquée. Ce processus de liaison se produit au moment de la compilation. Le compilateur sait qu'il doit appeler la méthode sum avec deux valeurs entières pour cal.sum(2, 3). Pour cal(5.1, 6.4), il appellera la méthode sum avec deux valeurs doubles. Toutes les informations requises sont connues avant l'exécution, ce qui augmente l'efficacité du programme et la vitesse d'exécution.

Qu'est-ce que la liaison dynamique ?

Dans Dynamic Binding, le compilateur ne résout pas la liaison au moment de la compilation. La liaison se produit au moment de l'exécution. Il est également connu sous le nom de reliure tardive. La liaison dynamique se produit dans le remplacement de méthode. Reportez-vous au programme écrit en Java.

classe publique Shape(){

public void draw(){

System.out.println("Dessiner une forme");

}

}

public class Circle() étend Shape{

public void draw(){

System.out.println("Dessiner un cercle");

}

}

public class Triangle() étend Shape{

public void draw(){

System.out.println("Dessiner un triangle");

}

}

test de classe publique{

public static void main(String args){

Forme s;

s=nouvelle Forme();

s.draw();

s=nouveau Cercle();

s.draw();

s=nouveau Triangle();

s.draw();

}

}

Selon le programme ci-dessus, la classe Shape a une méthode draw(). La classe Circle et la classe Triangle étendent la classe Shape. La classe Circle et la classe Triangle peuvent hériter des attributs et des méthodes de la classe Shape. Par conséquent, la classe Shape est la super classe ou la classe parent. Class Circle et Class Triangle sont des sous-classes ou des classes dérivées. Ces classes ont également la méthode draw() avec leurs propres implémentations. Par conséquent, la méthode draw() de la super classe est remplacée.

Dans la méthode principale, différents objets sont invoqués. Il existe une variable de référence de type Shape, qui est s. Ensuite, s appelle la méthode en fonction de la classe spécifique. Au moment de la compilation, le compilateur ne fera référence qu'à la méthode draw de la super classe. Lorsque l'exécution réelle commence, cela conduira à l'exécution de différentes méthodes de dessin. Tout d'abord, s pointera vers l'objet de type Shape. Par conséquent, il invoquera la méthode draw dans la classe Shape. Ensuite, le s pointera l'objet de type Circle et invoquera la méthode draw de la classe Circle. Enfin, s fera référence à l'objet de type Triangle et invoquera la méthode draw dans la classe Triangle. Même si la variable de référence est de type Shape, la liaison dépend du type d'objet. Ce concept est connu sous le nom de liaison dynamique. Les informations sont fournies au moment de l'exécution, de sorte que la vitesse d'exécution est plus lente par rapport à la liaison statique.

Quelle est la similitude entre la liaison statique et la liaison dynamique ?

Les deux sont liés à un polymorphisme qui permet à un objet de se comporter de plusieurs façons

Quelle est la différence entre la liaison statique et la liaison dynamique ?

Liaison statique vs liaison dynamique

La liaison statique est le type de liaison qui collecte toutes les informations requises pour appeler une fonction pendant la compilation. Dynamic Binding est le type de liaison qui collecte toutes les informations requises pour appeler une fonction pendant l'exécution.
Heure de la liaison
La liaison statique se produit au moment de la compilation. La liaison dynamique se produit au moment de l'exécution.
Fonctionnalité
La liaison statique utilise les informations de type pour la liaison. Dynamic Binding utilise des objets pour se résoudre à se lier.
Objet réel
La liaison statique n'utilise pas d'objet réel pour la liaison. Liaison dynamique, utilisez l'objet réel pour la liaison.
Synonymes
La liaison statique est également connue sous le nom de liaison précoce. La liaison dynamique est également appelée liaison tardive.
Exécution
La vitesse d'exécution est rapide en liaison statique. La vitesse d'exécution est faible en liaison dynamique.
Exemple
La liaison statique est utilisée dans la surcharge de méthode. La liaison dynamique est utilisée dans la substitution de méthode.

Résumé - Liaison statique vs liaison dynamique

Il existe un lien entre un appel de méthode et une définition de méthode. C'est ce qu'on appelle la reliure. Il existe deux types de liaisons appelées liaisons statiques et liaisons dynamiques. La différence entre la liaison statique et la liaison dynamique est que dans la liaison statique, la liaison est résolue au moment de la compilation, tandis que la liaison dynamique est résolue au moment de l'exécution, qui correspond à l'heure réelle de l'exécution. Comme les informations requises sont fournies avant l'exécution, la liaison statique est rapide à exécuter par rapport à la liaison dynamique.

Téléchargez le PDF de la liaison statique vs la liaison dynamique

Vous pouvez télécharger la version PDF de cet article et l'utiliser à des fins hors ligne conformément à la note de citation. Veuillez télécharger la version PDF ici: Différence entre la liaison statique et la liaison dynamique

Conseillé: