Čo je to dedičstvo?
Dedenie je mechanizmus, pri ktorom jedna trieda nadobúda majetok inej triedy. Dieťa napríklad dedí vlastnosti svojich rodičov. Pomocou dedenia môžeme znova použiť polia a metódy existujúcej triedy. Dedičstvo preto uľahčuje opätovnú použiteľnosť a je dôležitým konceptom OOP.
V tomto návode sa naučíte
- Druhy dedičstva
- Dedenie v Jave
- Príklad dedičnosti Java
- Super kľúčové slovo
- Naučte sa dedičstvo v OOP pomocou príkladu
Druhy dedičstva
V Jave existujú rôzne typy dedenia:
Jednoduché dedičstvo:
V Single Inheritance rozširuje jedna trieda ďalšiu triedu (iba o jednu triedu).

Vo vyššie uvedenom diagrame trieda B rozširuje iba triedu A. Trieda A je super trieda a trieda B je podtrieda.
Viacnásobné dedičstvo:
Vo viacerých dedičstvách jedna trieda rozširujúca viac ako jednu triedu. Java nepodporuje viacnásobné dedenie.

Ako je uvedené vyššie, trieda C rozširuje triedu A aj triedu B.
Viacúrovňové dedičstvo:
Vo viacúrovňovej dedičnosti môže jedna trieda dediť z odvodenej triedy. Odvodená trieda sa preto stáva základnou triedou pre novú triedu.

Ako je znázornené na obrázku, trieda C je podtriedou B a B je podtriedou triedy A.
Hierarchická dedičnosť:
V hierarchickej dedičnosti je jedna trieda zdedená mnohými podtriedami.

Podľa vyššie uvedeného príkladu dedia triedy B, C a D rovnakú triedu A.
Hybridné dedičstvo:
Hybridné dedičstvo je kombináciou jednoduchého a viacnásobného dedičstva.

Ako je uvedené vyššie, všetci verejní a chránení členovia triedy A sa dedia do triedy D, najprv cez triedu B a po druhé cez triedu C.
Poznámka: Java nepodporuje hybridné / viacnásobné dedičstvo
Dedenie v Jave
JAVSKÉ DEDIČSTVO je mechanizmus, pri ktorom jedna trieda nadobúda majetok inej triedy. Keď v Jave existuje vzťah „Is-A“ medzi dvoma triedami, použijeme Inheritance. Rodičovská trieda sa nazýva super trieda a zdedená trieda sa nazýva podtrieda. Kľúčové slovo
extends
používa podtrieda na dedenie funkcií super triedy.
Dedenie je dôležité, pretože vedie k opakovanému použitiu kódu.
Syntax dedičnosti Java:
class subClass extends superClass{//methods and fields}
Príklad dedičnosti Java
class Doctor {void Doctor_Details() {System.out.println("Doctor Details… ");}}class Surgeon extends Doctor {void Surgeon_Details() {System.out.println("Surgen Detail… ");}}public class Hospital {public static void main(String args[]) {Surgeon s = new Surgeon();s.Doctor_Details();s.Surgeon_Details();}}
Super kľúčové slovo
Super kľúčové slovo je podobné „tomuto“ kľúčovému slovu.
Kľúčové slovo super možno použiť na prístup k ľubovoľnému údajovému členu alebo metódam nadradenej triedy.
Kľúčové slovo Super je možné použiť na úrovni premennej, metódy a konštruktora.
Syntax:
super.();
Naučte sa dedičstvo v OOP pomocou príkladu
Zvážte tú istú bankovú aplikáciu z predchádzajúceho príkladu.
Mali by sme otvoriť dva rôzne typy účtov, jeden na ukladanie a druhý na kontrolu (tiež známy ako aktuálny).
Poďme si porovnať a naštudovať, ako môžeme ku kódovaniu pristupovať z pohľadu štruktúrovaného a objektovo orientovaného programovania. Štrukturálny prístup : V štruktúrovanom programovaní vytvoríme dve funkcie -
- Jeden na stiahnutie
- A druhý pre vkladovú akciu.
Pretože fungovanie týchto funkcií zostáva vo všetkých účtoch rovnaké.
Prístup OOP : Pri použití prístupu programovania OOP . Vytvorili by sme dve triedy.
- Každá z nich má implementáciu funkcií vkladu a výberu.
- Takto odpadnú ďalšie práce.
Žiadosť o zmenu v softvéri
Teraz došlo k zmene v špecifikácii požiadaviek na niečo, čo je v softvérovom priemysle také bežné. Mali by ste pridať funkcionalitu privilegovaného bankového účtu k prečerpaniu. Prečerpanie je na pozadí možnosti, pri ktorej si môžete vybrať viac, ako je k dispozícii zostatok na vašom účte.
Štrukturálny prístup: Pomocou funkčného prístupu musím upraviť svoju funkciu stiahnutia, ktorá je už testovaná a základná. A pridať spôsob, ako je uvedené nižšie, sa postará o nové požiadavky.
Prístup OOP: Ak použijete prístup OOP, stačí napísať novú triedu s jedinečnou implementáciou funkcie výberu. Nikdy sme sa nedotkli testovanej časti kódu.
Ďalšia žiadosť o zmenu
Čo ak sa požiadavka zmení ďalej? Chcem pridať účet na kreditnej karte s vlastnou jedinečnou požiadavkou na vklady .
Štrukturálny prístup: Pomocou štrukturálneho prístupu musíte znova zmeniť testovaný kus kódu vkladu.
Prístup OOP : Ale pomocou objektovo-orientovaného prístupu vytvoríte novú triedu s jedinečnou implementáciou metódy vkladu (na obrázku nižšie zvýraznená červenou farbou).
Takže aj keď sa štrukturálne programovanie na začiatku javí ako ľahký prístup, OOP z dlhodobého hľadiska vyhráva.
Výhoda dedenia v OOP
Ale niekto môže namietať, že vo všetkých triedach máte opakované časti kódu.
Aby ste to prekonali, vytvoríte nadradenú triedu, povedzte „účet“ a implementujete rovnakú funkciu vkladu a výberu. A urobte z podradených tried „účtu“ podradené triedy. Aby mali prístup k funkciám výberu a vkladu v triede účtov.
Funkcie sa nemusia implementovať jednotlivo. Toto je dedičstvo v Jave. .