Java / Spring - Moștenire, polimorfism și injecție de dependență

Cuprins
Ne vom uita la 2 concepte de programare Java (Moştenire Da Polimorfism) pentru a ne pregăti să înțelegem un concept mai avansat numit Injecție de dependență care este tipic pentru cadrele precum Spring și Hibernate care sunt utilizate în mod obișnuit astăzi și despre care vom vorbi în viitoarele tutoriale.
Nu, nu se referă la acele milioane pe care ți le-a lăsat unchiul tău bogat când a murit în cele din urmă, este un concept tipic de programare Java și constă din „moștenirea” câmpurilor și metodelor aparținând unui superclasa intr-un subclasă.
Bazele moștenirii:
  • O clasă care este derivată dintr-o altă clasă se numește subclasă (sau clasa extinsă, clasa fiică sau clasa derivată). De asemenea, clasa căreia subclasă este derivat se numește superclasa (de asemenea clasa de bază sau clasa părinte). De-a lungul acestui tutorial și al tutorialelor ulterioare voi folosi termenii subclasă Da superclasa.
  • În Java în mod specific, cu excepția clasei Obiect, TOATE clasele moștenesc direct unui SINGUR superclasa (moștenire simplă). În cazul în care nu se definește în mod explicit superclasa, fiecare clasă moștenește implicit din clasă Obiect.
  • O clasă poate moșteni de la o altă clasă care moștenește de la o altă clasă care moștenește de la o altă clasă până la moștenirea de la clasă Obiect, se spune apoi că respectiva clasă „coboară” de la toate clasele din ierarhie la clasă Obiect.
Să încercăm să simplificăm acest lucru cu un exemplu:
Să presupunem că avem următoarele 3 clase în pachetul de moștenire:
 moștenirea pachetului; public class Dog {private int numberOfLegs; vopsea privată de șir; cursă privată de corzi; public int getNumberOfLegs () {return returnOfLegs; } 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 bark () {System.out.println ("Câinele merge WOW"); }} 

 moștenirea pachetului; public class Cat {private int numberOfLegs; vopsea de păr privită cu șiruri; cursă privată de corzi; public int getNumberOfLegs () {return returnOfLegs; } 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 meow () {System.out.println ("Pisica face MEOW"); }} 

 moștenirea pachetului; public class Horse {private int numberOfLegs; vopsea de păr privită cu șiruri; cursă privată de corzi; public int getNumberOfLegs () {return returnOfLegs; } 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 ("Calul face IIIIGGGHHHH"); }} 

Se poate vedea că cele 3 clase generează 3 tipuri diferite de obiecte, dar cu mai multe caracteristici similare, de fapt, acestea sunt exact aceleași, cu excepția metodelor de scoarță, miau și vecin. Prin urmare, folosind conceptul de moștenire, ar fi potrivit să rescriem caracteristicile comune într-un superclasa și modificați fiecare subclasă astfel încât să adauge metoda corespunzătoare doar după cum urmează:
[culoare = # a9a9a9]1[/Culoare]
Noi creăm superclasa Animal:
 moștenirea pachetului; public class Animal {private int numberOfLegs; vopsea de păr privită cu șiruri; cursă privată de corzi; public int getNumberOfLegs () {return returnOfLegs; } 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; }} 

[culoare = # a9a9a9]2 [/Culoare]
Modificăm 3 subclasele cele existente pentru a moșteni din clasa Animal (folosind cuvântul cheie „extends”) și adăugați singura metodă:
 moștenirea pachetului; public class Dog extinde Animal {public void bark () {System.out.println ("Dog merge WOW"); }} 

 moștenirea pachetului; public class Cat extends Animal {public void meow () {System.out.println ("Pisica face MEOW"); }} 

 moștenirea pachetului; public class Horse extends Animal {public void neigh () {System.out.println ("Horse does IIIIGGGHHHH"); }} 

În acest fel culminăm subiectul „Moștenirea” în Java, în curând vom continua cu conceptul de „Polimorfism” care este strâns legat de „Moștenire” și ne va ajuta să înțelegem conceptul de „Injecție de dependență” pentru a începe să înțelegem Cadrul „Primăvară”.
Nu uitați să vă lăsați comentariile, până data viitoare!V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave