Différence entre la liaison statique et la liaison dynamique

Différence entre la liaison statique et la liaison dynamique

Différence clé - statique Liaison vs liaison dynamique
 

Des langages de programmation tels que Java et C # Support Origin Oriented Programming (OOP). 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. 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 est dans la définition de la méthode. Il existe un lien entre un appel de méthode et une définition de la méthode. Il est connu sous le nom de liaison. Il existe deux types de liaisons. Ils sont une liaison statique et une liaison dynamique. Le différence clé entre la liaison statique et la liaison dynamique est que, En 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 temps réel d'exécution. Cet article traite de la différence entre ces deux mécanismes de liaison.

CONTENU

1. Aperçu 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 dans la 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

Référer le programme ci-dessous écrit en java.

classe publique a

Méthode publique 1 ()

Système.dehors.println («Method1»);

Méthode publique 2 ()

Système.dehors.println («Method2»);

public static void main (String [] args)

A obj = new a ();

obj.méthode1 ();

obj.Method2 ();

Selon le programme ci-dessus, un objet de type A est créé. Alors la méthode1 et la méthode2 sont appelées. Identifier quelle méthode doit appeler à l'exécution est connue sous le nom de liaison. Déclaration obj.Method1 () appellera Method1 () et Obj.Method2 () appellera Method2 (). Ce lien est contraignant.

En liaison statique, la liaison est résolue au temps de compilation par le compilateur. Il est également connu sous le nom reliure précoce. La liaison se produit avant qu'un programme fonctionne réellement. La liaison statique se produit dans la surcharge de méthode. Référer le programme ci-dessous écrit en java.

Calcul du public public

Sum public public (int x, int y)

Système.dehors.println («Sum is», x + y);

Somme publique vide (double x, double y)

Système.dehors.println («Sum is», x + y);

public static void main (String [] args)

Calcul cal = nouveau calcul ();

cal.somme (2,3);

cal.somme (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 devrait appeler la méthode de somme avec deux valeurs entières pour CAL.somme (2,3). Pour Cal (5.1,6.4), il appellera la méthode de somme avec deux doubles valeurs. Toutes les informations requises sont connues avant l'exécution, il augmente donc l'efficacité du programme et la vitesse d'exécution.

Qu'est-ce que la liaison dynamique?

Dans la liaison dynamique, 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 reliure tardive. La liaison dynamique se produit dans la méthode remplacée.  Reportez-vous au programme écrit en java.

Forme de classe publique ()

public void draw ()

Système.dehors.println («Draw Shape»);

classe publique Circle () étend la forme

public void draw ()

Système.dehors.println («Draw Circle»);

classe publique triangle () étend la forme

public void draw ()

Système.dehors.println («Draw triangle»);

Test de classe publique

public static void main (String [] args)

Formes;

S = nouvelle forme ();

s.dessiner();

S = new Circle ();

s.dessiner();

S = nouveau triangle ();

s.dessiner();

Selon le programme ci-dessus, la forme de la classe a une méthode Draw (). Le cercle de classe et le triangle de classe étend la classe de forme. Le cercle de classe et le triangle de classe peuvent hériter des attributs et des méthodes de forme de classe. Par conséquent, la forme de la classe est la classe Super Classe ou Parent. Le cercle de classe et le triangle de classe sont des sous-classes ou des classes dérivées. Ces classes ont également des draw () avec leurs propres implémentations.  Par conséquent, la méthode Draw () dans 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 du type de forme, qui est s. Ensuite, S invoque la méthode en fonction de la classe spécifique. Au moment de la compilation, le compilateur ne fera référence que la méthode de dessin de la classe Super Class. Lorsque l'exécution réelle commence, cela entraînera l'exécution de différentes méthodes de tirage. Tout d'abord, S pointera vers l'objet de forme de type. Par conséquent, il invoquera la méthode de dessin dans la classe de forme. Ensuite, le S pointera l'objet du cercle de type, et il invoquera la méthode de dessin de la classe Circle. Enfin, S fera référence à l'objet du triangle de type, et il invoquera la méthode de dessin en classe triangulaire. Même si la variable de référence est de forme de type, 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 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 manières.

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. La liaison dynamique est le type de liaison qui collecte toutes les informations requises pour appeler une fonction pendant le temps d'exécution.
 Temps de reliure
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 des informations de type pour la liaison. La liaison dynamique utilise des objets pour 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 comme une liaison précoce. La liaison dynamique est également connue sous le nom de 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 méthode remplacée.

Résumé - statique Liaison vs liaison dynamique 

Il existe un lien entre un appel de méthode et une définition de la méthode. Il est connu sous le nom de 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 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 temps réel d'exécution. Comme les informations requises sont fournies avant le temps d'exécution, la liaison statique est rapide par rapport à la liaison dynamique.

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

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

Référence:

1.Interview de Java 04 - Liaison statique vs liaison dynamique, Tutoriels Mahika, 27 déc. 2017. Disponible ici