Comment utiliser la liaison dynamique en Java ?

Comment Utiliser La Liaison Dynamique En Java



Le ' liaison dynamique ' permet un comportement polymorphe, où l'invocation de la méthode d'un objet est déterminée au moment de l'exécution en fonction du type réel de l'objet, plutôt que du type de référence. Il favorise la réutilisation du code en permettant aux sous-classes de remplacer et de fournir leur implémentation des méthodes définies dans la classe parent.

Ce blog présente l'utilisation et l'implémentation de la liaison dynamique en Java.

Comment utiliser la liaison dynamique en Java ?

La liaison dynamique permet un couplage lâche entre les objets. Il facilite l'extension des fonctionnalités en ajoutant de nouvelles sous-classes qui remplacent les méthodes sans modifier le code existant. La liaison dynamique est largement utilisée pour la répartition de l'exécution, la gestion des événements ou les systèmes de plug-ins.







Passons en revue quelques exemples pour une explication détaillée :



Exemple 1 : Implémentation de la liaison dynamique



En utilisant la liaison dynamique, les programmeurs peuvent permettre aux utilisateurs de personnaliser et de remplacer les comportements par défaut pour créer des applications personnalisables. Pour une mise en œuvre pratique, passons en revue un exemple :





importer java.util.Arrays ;
importer java.util.HashSet ;
importer java.util.List ;
importer java.util.Set ;

classe publique DynBind {
public statique vide principal ( Chaîne [ ] arguments ) {
Jeu de jeuType1 = nouveau Cricket ( ) ;
GameType2 = nouveau CallofDuty ( ) ;
gameType1.gameType ( ) ;
gameType2.gameType ( ) ;
}
}
jeu de classe {
type de jeu vide public ( ) {
System.out.println ( 'Jeux physiques ou virtuels' ) ;
}
}
la classe Cricket étend le jeu {
@ Passer outre
type de jeu vide public ( ) {
System.out.println ( 'Le cricket est un jeu physique' ) ;
}
}
la classe CallofDuty étend le jeu {
@ Passer outre
type de jeu vide public ( ) {
System.out.println ( 'CallofDuty est un jeu virtuel' ) ;
}
}

Explication du code ci-dessus :



  • Tout d'abord, la classe ' DynBind ' est créé, et deux objets de type ' Jeux » sont déclarés.
  • Ensuite, ces objets sont initialisés avec de nouveaux ' Criquet ' et ' Appel du devoir ” objets, cette initialisation démontre la liaison dynamique. Le type de référence est ' Jeux ' mais les types d'objets réels sont ' Criquet ' et ' Appel du devoir ', respectivement.
  • Maintenant, ces objets sont utilisés pour invoquer le ' type de jeu() ” fonctionne en remplaçant la fonction dans les classes enfants.
  • Ensuite, le parent ' Jeux ' la classe est déclarée qui crée et initialise le ' type de jeu() ', qui imprime un message texte factice.
  • Ensuite, deux classes enfants sont créées avec le nom ' Criquet ' et ' Appel du devoir ”. Ces classes sont héritées du parent ' Jeux ' classe.
  • Après cela, le « @Passer outre ' L'annotation est utilisée pour remplacer le parent ' Jeux « méthodes de classe nommées » type de jeu() ”.
  • À la fin, un message factice différent est affiché dans les deux méthodes remplacées par la classe enfant.

Après la fin de la phase d'exécution :

La sortie indique que les messages factices des classes enfants sont affichés sur la console à l'aide de la liaison dynamique.

Exemple 2 : Implémentation de l'héritage multiniveau

La liaison dynamique peut également être implémentée pour la création d'un héritage à plusieurs niveaux. Deux blocs de code du même programme comme indiqué ci-dessous :

jeu de classe {
type de jeu vide public ( ) {
System.out.println ( 'Jeux physiques ou virtuels' ) ;
}
}
la classe Cricket étend le jeu {
@ Passer outre
type de jeu vide public ( ) {
System.out.println ( 'Le cricket est un jeu physique' ) ;
}
public void format de lecture ( ) {
System.out.println ( 'Le cricket a différents formats de jeu' ) ;
}
}
la classe CallofDuty étend le jeu {
@ Passer outre
type de jeu vide public ( ) {
System.out.println ( 'CallofDuty est un jeu virtuel' ) ;
}
Mode de jeu vide public ( ) {
System.out.println ( 'CallofDuty a plusieurs modes de jeu' ) ;
}
}
la classe CricketGame étend Cricket {
mode de jeu vide public ( ) {
System.out.println ( 'Le cricket a un mode de jeu unique' ) ;
}
}
la classe CallofDutyGame étend CallofDuty {
}

Explication du code ci-dessus :

  • Tout d'abord, le parent ' Jeux ' la classe est créée et elle inclut le ' type de jeu() ” fonction qui contient un message factice.
  • Ensuite, deux classes enfants nommées ' Criquet ' et ' Appel du devoir ' sont créés, tous deux remplaçant la fonction de classe parente nommée ' type de jeu() ”.
  • Ces classes contiennent une fonction supplémentaire nommée ' jouerFormat() ' et ' mode de jeu() ” fonctions, respectivement.
  • Ensuite, créez un enfant à plusieurs niveaux nommé ' CricketJeu ' qui est prolongé par l'enfant ' Criquet ' classe. Il contient le ' mode de jeu() 'fonction qui est écrasée par son parent' Criquet ' classe.
  • Après cela, le « CallofDutyGame ' la classe est créée en tant qu'enfant pour la ' Appel du devoir ' classe. Il crée un héritage à plusieurs niveaux et permet d'activer la fonctionnalité de liaison dynamique.

Maintenant, insérez le ' principal() ' méthode:

classe publique DynBind {
public statique vide principal ( Chaîne [ ] arguments ) {
CallofDutyGame codg = nouveau CallofDutyGame ( ) ;
codg.gameType ( ) ;
codg.gameMode ( ) ;

CricketJeu crier = nouveau jeu de cricket ( ) ;
cricg.gameType ( ) ;
cricg.playingFormat ( ) ;
cricg.gameMode ( ) ;
}
}

Explication du code ci-dessus :

  • Tout d'abord, un objet de la « CallofDutyGame ” la classe est créée qui appelle les fonctions de ses classes parentes.
  • De la même manière, le « CricketJeu ” objet est déclaré qui appelle sa fonction de classe parent qui est disponible à plusieurs niveaux dans la hiérarchie.

Après la fin de la phase d'exécution :

La sortie montre que l'héritage à plusieurs niveaux est créé à l'aide de la liaison dynamique en Java.

Conclusion

En Java, le ' liaison dynamique ” offre des avantages tels que le polymorphisme, la réutilisabilité du code, la flexibilité et l'extensibilité. Il est implémenté en suivant les règles d'héritage, de remplacement de méthode et de conversion ascendante. La liaison dynamique active également les fonctions d'exécution et améliore le comportement flexible et polymorphe dans le concept OOPs. Il s'agit de l'utilisation et de l'implémentation de la liaison dynamique en Java.