Java / proljeće - nasljeđivanje, polimorfizam i ubrizgavanje ovisnosti

Sadržaj
Razmotrit ćemo dva koncepta programiranja Java (Nasljeđivanje Y Polimorfizam) kako bi nas pripremili za razumijevanje naprednijeg koncepta tzv Injekcija ovisnosti što je tipično za okvire poput proljeća i hibernacije koji se danas uobičajeno koriste i o kojima ćemo govoriti u budućim vodičima.
Ne, ne odnosi se na one milijune koje vam je vaš bogati ujak ostavio kad je konačno umro, to je tipičan koncept programiranja na Javi i sastoji se od "nasljeđivanja" polja i metoda koji pripadaju superklasa unutar a podrazred.
Osnove nasljeđivanja:
  • Klasa koja je izvedena iz druge klase naziva se podrazred (ili prošireni razred, razred kćeri ili izvedena klasa). Također, klasa čiji je podrazred je izveden naziva se superklasa (isto osnovna klasa ili roditeljski razred). Tijekom ovog vodiča i sljedećih tutorijala koristit ću pojmove podrazred Y superklasa.
  • U Javi posebno, osim klase Objekt, SVE klase nasljeđuju izravno na JEDAN superklasa (jednostavno nasljeđivanje). U slučaju da eksplicitno ne definirate nadklasu, svaka klasa implicitno nasljeđuje od klase Objekt.
  • Klasa može naslijediti od druge klase koja nasljeđuje od druge klase koja nasljeđuje od druge klase do nasljeđivanja od klase Objekt, tada se kaže da se navedena klasa "spušta" iz svih klasa u hijerarhiji u klasu Objekt.
Pokušajmo to pojednostaviti primjerom:
Pretpostavimo da imamo sljedeće 3 klase u nasljednom paketu:
 nasljeđivanje paketa; javna klasa Pas {private int numberOfLegs; frizura za kosu u privatnom nizu; privatna gudačka utrka; public int getNumberOfLegs () {return brojOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } javni niz getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } javni String getRace () {povratna utrka; } public void setRace (String race) {this.race = race; } public void bark () {System.out.println ("Pas ide WOW"); }} 

 nasljeđivanje paketa; javna klasa Cat {private int numberOfLegs; frizura za kosu u privatnom nizu; privatna gudačka utrka; public int getNumberOfLegs () {return numberOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } javni niz getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } javni String getRace () {povratna utrka; } public void setRace (String race) {this.race = race; } public void meow () {System.out.println ("Mačka čini MEOW"); }} 

 nasljeđivanje paketa; javna klasa Horse {private int numberOfLegs; frizura za kosu u privatnom nizu; privatna gudačka utrka; public int getNumberOfLegs () {return brojOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } javni niz getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } javni String getRace () {povratna utrka; } public void setRace (String race) {this.race = race; } public void sus () {System.out.println ("Konj radi IIIIGGGHHHH"); }} 

Može se vidjeti da tri klase generiraju 3 različite vrste objekata, ali s više sličnih karakteristika, zapravo, potpuno su iste, osim metoda kora, mijaukanja i hrzanja. Stoga bi, koristeći koncept nasljeđivanja, bilo prikladno prepisati zajedničke karakteristike u a superklasa i svaku izmijeniti podrazred tako da samo dodaju odgovarajuću metodu na sljedeći način:
[color = # a9a9a9]1[/Boja]
Mi stvaramo superklasa Životinja:
 nasljeđivanje paketa; javni razred Životinja {private int numberOfLegs; frizura za kosu u privatnom nizu; privatna gudačka utrka; public int getNumberOfLegs () {return brojOfLegs; } public void setNumberOfLegs (int numberOfLegs) {this.numberOfLegs = numberOfLegs; } javni niz getHairColor () {return hairColor; } public void setHairColor (StringHairColor) {this.HairColor = hairColor; } javni String getRace () {povratna utrka; } public void setRace (String race) {this.race = race; }} 

[color = # a9a9a9]2 [/Boja]
Modificirali smo 3 potklase postojeće za nasljeđivanje iz klase Animal (koristeći ključnu riječ "extends") i samo dodajte jednu metodu:
 nasljeđivanje paketa; javna klasa Pas proširuje Animal {public void bark () {System.out.println ("Pas ide WOW"); }} 

 nasljeđivanje paketa; javna klasa Mačka proširuje Animal {public void meow () {System.out.println ("Mačka čini MEOW"); }} 

 nasljeđivanje paketa; javna klasa Konj proširuje Životinja {public void sus () {System.out.println ("Konj čini IIIIGGGHHHH"); }} 

Na ovaj način kulminiramo temu "Nasljeđivanje" u Javi, uskoro ćemo nastaviti s konceptom "polimorfizma" koji je usko povezan s "nasljeđivanjem" i pomoći će nam da razumijemo koncept "ubrizgavanja ovisnosti" kako bismo počeli razumijevati Okvir "Proljeće".
Ne zaboravite ostaviti svoje komentare do sljedećeg puta!Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave