La liaison précoce et la liaison tardive sont deux concepts liés au polymorphisme. La liaison précoce se produit au moment de la compilation tandis que la liaison tardive se produit au moment de l'exécution. Le différence clé entre la liaison précoce et tardive est que La liaison précoce utilise les informations de classe pour résoudre l'appel de méthode tandis que la liaison tardive utilise l'objet pour résoudre l'appel de la méthode.
Les langages de programmation tels que Java prennent en charge la programmation orientée objet (OOP). C'est un paradigme qui permet de construire le programme ou le logiciel à l'aide d'objets. Il y a plusieurs objets dans le logiciel. Ces objets sont connectés les uns aux autres et transmettent des messages en utilisant des méthodes. Chaque objet a des caractéristiques et des comportements. Les caractéristiques sont décrites par les propriétés ou les attributs. Les comportements sont décrits en utilisant des méthodes. L'objet étudiant peut avoir des caractéristiques telles que le nom, l'âge et ils sont représentés par des propriétés. L'objet étudiant peut avoir des comportements tels que l'étude et la lecture, et ils sont représentés par des méthodes. Un pilier majeur de la POO est le polymorphisme. Il permet à un objet de se comporter de plusieurs manières. La liaison précoce et la liaison tardive sont deux concepts du polymorphisme. Les méthodes de surcharge sont liées à l'aide de liaison précoce. Les méthodes remplacées sont liées à l'aide de liaison tardive.
1. Aperçu et différence clé
2. Qu'est-ce que la liaison précoce
3. Qu'est-ce que la liaison tardive
4. Similitudes entre la liaison précoce et tardive
5. Comparaison côte à côte - la liaison tardive précoce dans la forme tabulaire
6. Résumé
Dans la liaison précoce, les informations de classe sont utilisées pour résoudre l'appel de la méthode. La liaison précoce se produit au moment de la compilation. Il est également connu sous le nom de liaison statique. Dans ce processus, la liaison se produit avant l'exécution du programme. Les méthodes de surcharge sont liées à l'aide de liaison précoce. Référer le programme ci-dessous.
Figure 01: Classe de calcul
Figure 02: Programme principal pour la liaison précoce
Selon le programme ci-dessus, la classe de calcul contient une méthode ADD qui accepte deux valeurs entières et une autre méthode ADD qui accepte deux doubles valeurs. Dans le programme principal, un objet de calcul de type est créé. Lorsque vous passez deux entiers à la méthode ADD, il invoquera la méthode ADD qui accepte deux entiers. Lors de la transmission de deux doubles valeurs à la méthode ADD, il invoquera la méthode correspondant à deux doubles valeurs. Ce processus de liaison se produit au moment de la compilation. Toutes les informations requises sont connues avant l'exécution, il augmente donc l'efficacité du programme et la vitesse d'exécution.
Dans la liaison tardive, l'objet est utilisé pour résoudre l'appel de la méthode. La liaison tardive se produit au moment de l'exécution. Il est également connu sous le nom liaison dynamique. Dans ce processus, la liaison se produit à l'exécution du programme. Les méthodes remplacées sont liées à l'aide de liaison tardive. Référer le programme ci-dessous.
Figure 03: Classe de forme
Figure 04: classe Circle
Figure 05: Classe de triangle
Figure 06: Programme principal pour la liaison tardive
Selon le programme ci-dessus, la forme de la classe a une méthode de tirage. Classe de classe et classe de triangle de classe étend la classe de forme. Par conséquent, ces deux classes peuvent hériter des attributs et des méthodes de la classe de forme. La classe de forme est la classe de base. Les classes de cercle et de triangle sont des classes dérivées. Le cercle de classe et le triangle de classe ont également la méthode de dessin avec leurs propres implémentations. Ainsi, la méthode de dessin dans la classe de forme est remplacée par les méthodes de dessin des classes dérivées.
Dans le programme principal, une variable de référence de forme de type est créée. Au moment de la compilation, le compilateur ne fera référence que la méthode de dessin de la classe de base. Au moment de l'exécution, différentes méthodes de tirage seront exécutées. Tout d'abord, S pointera l'objet de la forme de type. Ainsi, la méthode de dessin de la classe de forme est invoquée. Ensuite, le S pointera vers l'objet de type Circle, et il invoquera la méthode de dessin de la classe Circle. Enfin, S pointera l'objet de type triangle, et il invoquera la méthode de dessin dans la classe de triangle. Les méthodes sont appelées en fonction des objets. Par conséquent, l'objet est utilisé pour résoudre l'appel de la méthode dans la liaison tardive. Les informations requises pour la liaison sont fournies au moment de l'exécution, de sorte que la vitesse d'exécution est plus lente par rapport à la liaison précoce.
Liaison précoce vs liaison tardive | |
Le processus d'utilisation des informations de classe pour résoudre l'appel de méthode qui se produit au moment de la compilation est appelé la liaison précoce. | Le processus d'utilisation de l'objet pour résoudre l'appel de méthode qui se produit au moment de l'exécution est appelé la liaison tardive. |
Temps de reliure | |
La liaison précoce se produit au moment de la compilation. | La liaison tardive se produit au moment de l'exécution. |
Fonctionnalité | |
La liaison précoce utilise les informations de classe pour résoudre l'appel de la méthode. | La liaison tardive utilise l'objet pour résoudre l'appel de la méthode. |
Synonymes | |
La liaison précoce est également connue sous le nom de liaison statique… | La liaison tardive est également connue sous le nom de liaison dynamique. |
Occurrence | |
Les méthodes de surcharge sont liées à l'aide de liaison précoce. | Les méthodes remplacées sont liées à l'aide de liaison tardive. |
Vitesse d'exécution | |
La vitesse d'exécution est plus rapide dans la liaison précoce. | La vitesse d'exécution est plus faible dans la liaison tardive. |
La POO est couramment utilisée pour le développement de logiciels. Un pilier majeur de la POO est le polymorphisme. La liaison précoce et la liaison tardive sont liées à cela. La liaison précoce se produit au moment de la compilation tandis que la liaison tardive se produit au moment de l'exécution. Dans la surcharge de méthode, la liaison se produit en utilisant la liaison précoce. Dans la méthode remplacée, la liaison se produit en utilisant la liaison tardive. La différence entre la liaison précoce et tardive est que la liaison précoce utilise les informations de classe pour résoudre l'appel de méthode tandis que la liaison tardive utilise l'objet pour résoudre l'appel de la méthode.
1.Interview Java 04 - liaison statique vs liaison dynamique, Tutoriels Mahika, 27 décembre. 2017. Disponible ici
2.Dynamic Method Dispatch in Java | Tutoriel de base Java | StudyTonight. Disponible ici