Java / Spring - Héritage, polymorphisme et injection de dépendances

Table des matières
Nous examinerons 2 concepts de programmation Java (Patrimoine Oui Polymorphisme) pour nous préparer à comprendre un concept plus avancé appelé Injection de dépendance ce qui est typique des frameworks comme Spring et Hibernate qui sont couramment utilisés aujourd'hui et dont nous parlerons dans de futurs tutoriels.
Non, cela ne fait pas référence aux millions que votre riche oncle vous a laissés à sa mort, c'est un concept typique de la programmation Java et consiste à "hériter" de champs et de méthodes appartenant à un superclasse dans un sous-classe.
Les bases de l'héritage :
  • Une classe dérivée d'une autre classe est appelée sous-classe (ou alors classe étendue, classe fille ou alors Classe dérivée). Aussi, la classe dont le sous-classe est dérivé est appelé superclasse (aussi classe de base ou alors classe de parents). Tout au long de ce didacticiel et des didacticiels suivants, j'utiliserai les termes sous-classe Oui superclasse.
  • En Java spécifiquement, à l'exception de la classe Objet, TOUTES les classes héritent directement d'un SEUL superclasse (simple héritage). En cas de non définition explicite de la superclasse, chaque classe hérite implicitement de la classe Objet.
  • Une classe peut hériter d'une autre classe qui hérite d'une autre classe qui hérite d'une autre classe jusqu'à hériter de la classe Objet, on dit alors que ladite classe "descend" de toutes les classes de la hiérarchie à la classe Objet.
Essayons de simplifier cela avec un exemple :
Supposons que nous ayons les 3 classes suivantes dans le package d'héritage :
 héritage de paquet; public class Dog {private int numberOfLegs; coloration privée String; course de cordes privée; public int getNumberOfLegs () { return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } public String getRace () {return race; } public void setRace (String race) {this.race = race; } public void aboiement () {System.out.println ("Le chien fait WOW"); }} 

 héritage de paquet; public class Cat {private int numberOfLegs; coloration privée String; course de cordes privée; public int getNumberOfLegs () { return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } public String getRace () {return race; } public void setRace (String race) {this.race = race; } public void miaou () {System.out.println ("Le chat fait miaou"); }} 

 héritage de paquet; public class Horse {private int numberOfLegs; coloration privée String; course de cordes privée; public int getNumberOfLegs () { return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } public String getRace () {return race; } public void setRace (String race) {this.race = race; } public void neigh () {System.out.println ("Le cheval fait IIIIGGGHHHH"); }} 

On peut voir que les 3 classes génèrent 3 types d'objets différents mais avec de multiples caractéristiques similaires, en fait, ils sont exactement les mêmes à l'exception des méthodes aboiement, miaou et hennissement. Par conséquent, en utilisant le concept d'héritage, il serait approprié de réécrire les caractéristiques communes dans un superclasse et modifier chaque sous-classe de sorte qu'ils n'ajoutent que la méthode correspondante comme suit :
[couleur = # a9a9a9]1[/Couleur]
Nous créons le superclasse Animal:
 héritage de paquet; public class Animal {private int numberOfLegs; coloration privée String; course de cordes privée; public int getNumberOfLegs () { return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } public String getRace () {return race; } public void setRace (String race) {this.race = race; }} 

[couleur = # a9a9a9]2 [/Couleur]
Nous modifions les 3 sous-classes ceux existants à hériter de la classe Animal (en utilisant le mot-clé "extends") et ajoutez simplement la méthode unique :
 héritage de paquet; public class Dog étend Animal {public void bark () {System.out.println ("Le chien va WOW"); }} 

 héritage de paquet; classe publique Chat étend Animal {public void miaou () {System.out.println ("Le chat fait miaou"); }} 

 héritage de paquet; public class Horse étend Animal {public void hennissement () {System.out.println ("Le cheval fait IIIIGGGHHHH"); }} 

De cette façon, nous terminons le sujet de "l'héritage" en Java, nous continuerons bientôt avec le concept de "polymorphisme" qui est étroitement lié à "l'héritage" et nous aidera à comprendre le concept de "l'injection de dépendance" pour commencer à comprendre le Cadre "Printemps".
N'oubliez pas de laisser vos commentaires, jusqu'à la prochaine fois !Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave