Dedenie v OOP Java s príkladom

Obsah:

Anonim

Č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).

Jednotné dedičstvo

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.

Viacnásobné dedičstvo

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.

Viacúrovňové dedičstvo

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.

Hierarchické dedičstvo

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.

Hybridné dedičstvo

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 -

  1. Jeden na stiahnutie
  2. 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. .