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 créer 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 les 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 est 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 liaison. Il existe deux types de liaisons. Il s'agit d'une liaison statique et d'une liaison dynamique. La principale 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 est le moment réel de l'exécution. Cet article explique la différence entre ces deux mécanismes de liaison.
CONTENU
1. Présentation et différence clé
2. Qu'est-ce que la liaison statique
3. Qu'est-ce que la liaison dynamique
4. Similitudes entre la liaison statique et la liaison dynamique
5. Comparaison côte à côte - Liaison statique vs liaison dynamique sous forme tabulaire
6. Résumé
Qu'est-ce que la liaison statique?
La liaison est le lien entre un appel de méthode et des définitions de méthode.
Figure 01: Liaison statique et liaison dynamique
Reportez-vous au programme ci-dessous écrit en Java.
classe publique A {
public void method1 () {
System.out.println («Méthode1»);
}
public void method2 () {
System.out.println («Méthode2»);
}
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és. L'identification de la méthode à exécuter est appelée liaison. L'instruction obj.method1 () appellera method1 () et obj.method2 () appellera method2 (). Ce lien est contraignant.
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 l'exécution d'un programme. La liaison statique se produit lors de 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. (5,1, 6,4);
}
}
Selon le programme ci-dessus, lors du passage des deux entiers, la méthode avec deux entiers sera appelé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 de somme 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 liaison tardive. La liaison dynamique se produit lors du 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»);
}
}
classe publique Triangle () étend la forme {
public void draw () {
System.out.println («Dessiner un triangle»);
}
}
Test de classe publique {
public static void main (String args) {
Formes;
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 méthodes de la classe Shape. Par conséquent, la classe Shape est la super classe ou la classe parente. Le cercle de classe et le triangle de classe 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 appelé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 fera uniquement référence à la méthode de dessin de 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 appellera la méthode draw dans la classe Shape. Ensuite, le s pointera l'objet de type Circle, et il 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,donc la vitesse d'exécution est plus lente que la liaison statique.
Quelle est la similitude entre la liaison statique et la liaison dynamique?
Ces deux éléments sont liés à un polymorphisme qui permet à un objet de se comporter de plusieurs manières
Quelle est la différence entre la liaison statique et la liaison dynamique?
Diff article au milieu avant la table
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. | La liaison dynamique 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. | La liaison dynamique utilise des objets pour résoudre la liaison. |
Objet réel | |
La liaison statique n'utilise pas un objet réel pour la liaison. | Liaison dynamique, utilisez l'objet réel pour la liaison. |
Synonymes | |
La liaison statique est également appelée 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 le remplacement 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 liaison. Il existe deux types de liaisons appelées liaison statique et liaison dynamique. La différence entre la liaison statique et la liaison dynamique réside dans le fait 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 au moment réel de l'exécution. Comme les informations requises sont fournies avant l'exécution, la liaison statique est rapide dans l'exécution 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