Java / pavasaris - paveldėjimas, polimorfizmas ir priklausomybės injekcija

Turinys
Mes pažvelgsime į 2 „Java“ programavimo sąvokas (Paveldėjimas Y Polimorfizmas) paruošti mus suprasti pažangesnę koncepciją, vadinamą Priklausomybės injekcija kuris yra būdingas tokioms sistemoms kaip pavasaris ir žiemos miegas, kurios dažniausiai naudojamos šiandien ir apie kurias kalbėsime būsimuose vadovėliuose.
Ne, tai nekalbama apie tuos milijonus, kuriuos jūsų turtingas dėdė paliko jums, kai jis pagaliau mirė, tai yra tipiška „Java“ programavimo sąvoka, kurią sudaro „paveldintys“ laukai ir metodai, priklausantys superklasė per a poklasis.
Paveldėjimo pagrindai:
  • Klasė, kilusi iš kitos klasės, vadinama poklasis (arba išplėstinė klasė, dukros klasė arba išvestinė klasė). Taip pat, kurios klasė poklasis yra vedamas vadinamas superklasė (taip pat bazinė klasė arba tėvų klasė). Visoje šioje pamokoje ir vėlesnėse pamokose naudosiu terminus poklasis Y superklasė.
  • Konkrečiai „Java“, išskyrus klasę Objektas, VISOS klasės paveldimos tiesiogiai VIENAM superklasė (paprastas paveldėjimas). Jei superklasė nėra aiškiai apibrėžta, kiekviena klasė netiesiogiai paveldima iš klasės Objektas.
  • Klasė gali paveldėti iš kitos klasės, kuri paveldi iš kitos klasės, kuri paveldi iš kitos klasės, iki paveldėjimo iš klasės Objektas, tada sakoma, kad minėta klasė „nusileidžia“ iš visų hierarchijos klasių į klasę Objektas.
Pabandykime tai supaprastinti pavyzdžiu:
Tarkime, kad paveldėjimo pakete turime šias 3 klases:
 paketų paveldėjimas; viešosios klasės šuo {private int numberOfLegs; asmeninė styginių plaukų spalva; privačios styginių lenktynės; public int getNumberOfLegs () {return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = skaičiusOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = plaukų spalva; } public String getRace () {return race; } public void setRace (Styginių lenktynės) {this.race = race; } public void bark () {System.out.println ("Šuo eina WOW"); }} 

 paketų paveldėjimas; viešosios klasės katė {private int numberOfLegs; asmeninė styginių plaukų spalva; privačios styginių lenktynės; public int getNumberOfLegs () {return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = skaičiusOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = plaukų spalva; } public String getRace () {return race; } public void setRace (Styginių lenktynės) {this.race = race; } public void meow () {System.out.println ("Katė daro Miau"); }} 

 paketų paveldėjimas; public class Horse {private int numberOfLegs; asmeninė styginių plaukų spalva; privačios styginių lenktynės; public int getNumberOfLegs () {return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = skaičiusOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = plaukų spalva; } public String getRace () {return race; } public void setRace (Styginių lenktynės) {this.race = race; } public void kaimynas () {System.out.println ("Arklys daro IIIIGGGHHHH"); }} 

Galima pastebėti, kad 3 klasės sukuria 3 skirtingų tipų objektus, tačiau turi daug panašių savybių, iš tikrųjų jie yra visiškai vienodi, išskyrus žievės, miau ir kaimyninius metodus. Todėl, naudojant paveldėjimo sąvoką, būtų tikslinga perrašyti bendras charakteristikas a superklasė ir modifikuokite kiekvieną poklasis kad jie pridėtų tik atitinkamą metodą taip:
[spalva = # a9a9a9]1[/Spalva]
Mes kuriame superklasė Gyvūnas:
 paketų paveldėjimas; public class Animal {private int numberOfLegs; asmeninė styginių plaukų spalva; privačios styginių lenktynės; public int getNumberOfLegs () {return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = skaičiusOfLegs; } public String getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = plaukų spalva; } public String getRace () {return race; } public void setRace (Styginių lenktynės) {this.race = race; }} 

[spalva = # a9a9a9]2 [/Spalva]
Mes modifikuojame 3 poklasiai esamus paveldėti iš gyvūnų klasės (naudojant raktinį žodį „išplėsta“) ir tiesiog pridėti vieną metodą:
 paketų paveldėjimas; viešosios klasės šuo pratęsia gyvūną {public void bark () {System.out.println ("Šuo eina WOW"); }} 

 paketų paveldėjimas; viešoji klasė Katė pratęsia gyvūną {public void meow () {System.out.println ("Katė daro MEOW"); }} 

 paketų paveldėjimas; public class Horse extends Animal {public void kaimynė () {System.out.println ("Arklys daro IIIIGGGHHHH"); }} 

Taip pasiekiame „Java“ „Paveldėjimo“ temą, netrukus tęsime „polimorfizmo“ sąvoką, kuri yra glaudžiai susijusi su „Paveldėjimu“ ir padės suprasti „priklausomybės injekcijos“ sąvoką, kad pradėtume suprasti Sistema „Pavasaris“.
Nepamirškite palikti savo komentarų iki kito karto!Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave