Skúmanie dedičnosti v programovacom jazyku Java

Skúmanie dedičnosti v programovacom jazyku Java

Dedičnosť je jedným zo základných konceptov objektovo orientovaného programovania. V programovaní slovo dedičnosť predstavuje vzťah, v ktorom detská trieda preberá stav a správanie rodičovskej triedy.





Účelom dedičnosti pri vývoji softvéru je uľahčiť opätovné použitie bezpečného a spoľahlivého softvéru. Jednou z hlavných výhod používania dedičnosti je, že vo vašich programoch eliminuje nadbytočný kód.





prečo môj touchpad nefunguje?

Ako funguje dedičstvo

Myšlienka dedičnosti je, že mnohé triedy alebo objekty majú rovnakú sadu atribútov a metód. V duchu výroby spoľahlivého softvéru preto môžu nové triedy teraz čerpať z už existujúcich príbuzných tried a v prípade potreby rozšíriť existujúce stavy a správanie.





Reálnym príkladom fungovania dedičnosti by bolo zváženie ovocia. Toto je široký štítok, ktorý slúži na zapuzdrenie celého radu rôznych položiek.

Jablko je ovocie a tak isto aj pomaranč. Pomaranč však nie je jablko, takže ak ste vlastnili obchod, nemali by ste ovocie ako jednu zo svojich zásob. Možno by ste vo svojom inventári mohli mať sekciu s ovocím a v tejto sekcii by ste mali konkrétnejšie položky, ako sú jablká a pomaranče.



Tak funguje dedičnosť.

Použitie dedičstva v Jave

Dedičnosť je možné použiť v akomkoľvek programovacom jazyku, ktorý používa paradigmu objektovo orientovaného programovania. Presný spôsob, akým sa používa dedičnosť, však závisí od konkrétneho programovacieho jazyka.





Napríklad, C ++ je tiež objektovo orientovaný programovací jazyk . C ++ podporuje takzvanú viacnásobnú dedičnosť, zatiaľ čo Java podporuje iba jednu dedičnosť.

Čo to znamená, že v Jave môže mať rodičovská trieda mnoho podradených tried, ale každá podradená trieda môže mať iba jednu rodičovskú triedu (jedno dedičstvo). Existuje však spôsob, ako dosiahnuť nepriamu viacnásobnú dedičnosť v Jave vytvorením vzťahu medzi starým rodičom, rodičom a dieťaťom.





Vytvorenie rodičovskej triedy v Jave

Proces výberu nadradenej triedy z dokumentu o požiadavkách na softvér je známy ako objektovo orientovaná analýza. Počas tohto procesu sa fráza a často používa na identifikáciu možných dedičských vzťahov. Na základe vyššie uvedeného príkladu by ste mali vidieť, že ovocie by bolo našou materskou triedou.

Príklad triedy rodiča ovocia


public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = '';
skinColor ='';
taste ='';
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

Jeden z najpozoruhodnejších aspektov nadradenej triedy vyššie je modifikátor prístupu, ktorý sa používa s každou deklaráciou premennej. Modifikátor chráneného prístupu je ideálny na použitie v nadradených triedach, pretože zabraňuje triedam, ktoré nie sú podriadené, získať prístup k dátovým atribútom nadradenej triedy.

Ďalej v kóde sa zoznámite s konštruktérmi, getrami a nastavovačmi, ktoré sú všeobecnými stavebnými kameňmi pre akúkoľvek triedu Java. Nakoniec sa zoznámite s dvoma metódami (džús a jesť), ktoré sú vytvorené v rodičovskej triede nášho programu, pretože sú univerzálne pre všetky druhy ovocia - všetky druhy ovocia je možné jesť a odšťavovať.

Vytváranie podradených tried v Jave

Detské triedy sa zvyčajne nazývajú špecializované alebo odvodené triedy, pretože dedia stav a správanie od rodiča a často tieto atribúty upravujú tak, aby boli konkrétnejšie.

Pokračovaním nášho príkladu by ste mali pochopiť, prečo by oranžová farba bola vhodnou detskou triedou vyššie uvedenej triedy ovocia.

Príklad Orange Child Class


public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

Existuje rozdiel medzi tým, ako vyzerá bežná deklarácia triedy Java, a tým, čo máme v kóde uvedenom vyššie. Kľúčové slovo extends je to, čo sa v Jave používa na umožnenie dedičnosti.

V našom prípade vyššie detská trieda (oranžová) rozširuje rodičovskú triedu (ovocie). Oranžová trieda preto teraz môže pristupovať k stavu a správaniu triedy ovocia.

Jedinečný atribút, ktorý má naša trieda pomarančov, je identifikovaný premennou supremes (čo je oficiálny názov malých segmentov nachádzajúcich sa v pomarančoch). Tu vstupuje do hry špecializácia; nie všetky druhy ovocia majú supremes, ale všetky pomaranče áno, takže rezervácia premennej supremes pre triedu pomarančov je logická.

Pridanie metódy šupky k už existujúcim metódam stravovania a džúsu je tiež logické, pretože aj keď nie všetky plody je možné ošúpať, pomaranče sa často šúpu.

Mali by ste mať na pamäti, že ak by sme nemienili zmeniť existujúce metódy stravovania a džúsu, nemuseli by sme ich zaradiť do našej triedy pomarančov. Metódy v triede pomarančov prevažujú nad všetkými podobnými metódami v triede ovocia. Ak by sme teda jedli a odšťavovali všetky plody rovnakým spôsobom, nepotrebovali by sme tieto metódy vytvárať v oranžovej triede.

Konštruktéri rolí hrajú dedičstvo

Štandardne sú konštruktéry nadradenej triedy dedené podradenými triedami. Ak je teda vytvorený objekt podradenej triedy, znamená to, že sa automaticky vytvorí aj objekt nadradenej triedy.

Vráťme sa k nášmu príkladu, zakaždým, keď sa vytvorí nový oranžový predmet, vytvorí sa aj ovocný predmet, pretože pomaranč je ovocie.

V zákulisí sa pri vytváraní objektu podradenej triedy najskôr nazýva konštruktor nadradenej triedy a potom konštruktér podradenej triedy. V našej oranžovej podradenej triede vyššie, ak je oranžový objekt vytvorený bez akýchkoľvek parametrov, bude zavolaný náš predvolený konštruktér ovocnej triedy, za ktorým bude nasledovať náš predvolený dodávateľ oranžovej triedy.

Super metóda v našom primárnom konštruktéri vyššie je potrebná, pretože určuje, že primárny konštruktér - a nie predvolený konštruktér - rodičovskej triedy ovocia by sa mal volať vždy, keď sa vytvára oranžový objekt s parametrami.

Teraz môžete používať dedičstvo v Jave

Z tohto článku ste sa mohli dozvedieť, čo je dedičnosť, ako funguje a prečo je v programovaní taký dôležitý koncept. Teraz môžete vytvárať svoje dedičské vzťahy pomocou programovacieho jazyka Java. Okrem toho teraz viete, ako obísť jediné pravidlo dedičnosti Javy vytvorením vzťahu medzi starými rodičmi.

Obrazový kredit: Andreas Wohlfahrt / Pexels

zdieľam zdieľam Tweet E -mail Ako organizovať svoj objektovo orientovaný kód s dedičstvom

Správna správnosť objektovo orientovaného programovania znamená, že potrebujete vedieť o dedičnosti a o tom, ako môže zjednodušiť kódovanie a obmedziť chyby.

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Java
  • Objektovo orientované programovanie
O autorovi Kadeisha Kean(21 publikovaných článkov)

Kadeisha Kean je softvérový vývojár a technický/technologický spisovateľ. Má výraznú schopnosť zjednodušiť niektoré z najzložitejších technologických konceptov; produkovať materiál, ktorému každý technologický nováčik ľahko porozumie. Je nadšená písaním, vývojom zaujímavého softvéru a cestovaním po svete (prostredníctvom dokumentov).

Viac od Kadeisha Keana

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber