Öröklés Java OOP-kban példával

Tartalomjegyzék:

Anonim

Mi az öröklés?

Az öröklés olyan mechanizmus, amelyben az egyik osztály megszerzi egy másik osztály tulajdonát. Például a gyermek örökölje szülei tulajdonságait. Örökléssel újból felhasználhatjuk a meglévő osztály mezőit és metódusait. Ezért az öröklés megkönnyíti az újrafelhasználhatóságot, és az OOP-k fontos fogalma.

Ebben az oktatóanyagban megtanulja-

  • Az öröklés típusai
  • Öröklés Java-ban
  • Java öröklődési példa
  • Szuper kulcsszó
  • Tanulja meg az öröklődést az OOP-ban példával

Az öröklés típusai

Különböző típusú öröklés létezik a Java-ban:

Egyetlen öröklés:

Az egyszeri öröklésben az egyik osztály kiterjeszti a másik osztályt (csak az egyik osztályt).

Egyetlen öröklés

A fenti ábrán a B osztály csak az A osztályt terjeszti ki. Az A osztály szuper osztály, a B osztály pedig egy alosztály.

Többszörös öröklés:

Többszörös öröklés esetén egy osztály több osztályt is kiterjeszt. A Java nem támogatja a többszörös öröklést.

Többszörös öröklés

A fenti ábra szerint a C osztály kiterjeszti mind az A, mind a B osztályt.

Többszintű öröklés:

A többszintű öröklésben egy osztály örökölhet egy származtatott osztályból. Ezért a levezetett osztály lesz az új osztály alaposztálya.

Többszintű öröklés

Amint az a diagramon látható, a C osztály a B alosztálya, B pedig az A alosztály osztálya.

Hierarchikus öröklés:

A hierarchikus öröklésben egy osztályt sok alosztály örököl.

Hierarchikus öröklés

A fenti példa szerint a B, C és D osztály ugyanazt az A osztályt örökli.

Hibrid öröklés:

A hibrid öröklés az egyszeri és a többszörös öröklés kombinációja.

Hibrid öröklés

A fenti példa szerint az A osztály összes nyilvánossága és védett tagja öröklődik a D osztályba, először a B osztályon keresztül, másodszor pedig a C osztályon keresztül.

Megjegyzés: A Java nem támogatja a hibrid / többszörös öröklődést

Öröklés Java-ban

A JAVA ÖRÖKLÉS olyan mechanizmus, amelyben az egyik osztály megszerzi egy másik osztály tulajdonát. Ha a Java-ban két osztály között "Is-A" kapcsolat áll fenn, akkor az Öröklődést használjuk. A szülő osztályt szuper osztálynak, az örökölt osztályt pedig alosztálynak nevezzük. A kulcsszó

extends az alosztály használja a szuper osztály jellemzőinek öröklésére.

Az öröklés fontos, mivel a kód újrafelhasználhatóságához vezet.

Java öröklődés szintaxisa:

class subClass extends superClass{//methods and fields}

Java öröklődési példa

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();}}

Szuper kulcsszó

A szuper kulcsszó hasonló a "ez" kulcsszóhoz.

A szuper kulcsszó bármelyik adattaghoz vagy a szülőosztály metódusainak eléréséhez használható.

A Super kulcsszó változó, módszer és konstruktor szintjén használható.

Szintaxis:

super.();

Tanulja meg az öröklődést az OOP-ban példával

Tekintsük ugyanazt a banki alkalmazást, mint az előző példa.

Állítólag két különböző számlatípust nyitunk meg, az egyiket a megtakarításhoz, a másikat pedig az ellenőrzéshez (más néven jelenlegi).

Hasonlítsuk össze és tanulmányozzuk, hogyan lehet strukturált és objektum-orientált programozási szempontból megközelíteni a kódolást . Strukturális megközelítés : A strukturált programozásban két funkciót fogunk létrehozni -

  1. Egy visszavonásra
  2. A másik pedig betéti műveletre.

Mivel ezek a függvények a fiókok között változatlanok maradnak.

OOP megközelítése : Miközben az OOPs programozási megközelítést használja. Két osztályt hoznánk létre.

  • Mindegyik rendelkezik a betéti és visszavonási funkciókkal.
  • Ez felesleges többletmunkát jelent.

Változtatási kérelem a szoftverben

Most megváltozik a követelményspecifikáció valamire, ami annyira elterjedt a szoftveriparban. Önnek feltételezhetően hozzá kell adnia a funkcionalitáshoz tartozó privát bankszámlát a folyószámlahitel eszközzel. Háttérként a folyószámlahitel egy olyan eszköz, ahol a számlán rendelkezésre álló egyenlegnél nagyobb összeget vehet fel.

Strukturális megközelítés: A funkcionális megközelítés használatával módosítanom kell a visszavonási funkciómat, amely már tesztelt és alapszintű. És adjon hozzá egy olyan módszert, mint az alábbiakban, amely gondoskodik az új követelményekről.

Az OOP megközelítése: Az OOP megközelítésével csak egy új osztályt kell írnia, a visszavonási funkció egyedülálló megvalósításával. Soha nem nyúltunk a tesztelt kódrészlethez.

Újabb változtatási kérelem

Mi van, ha a követelmény tovább változik? Szeretne hozzáadni hitelkártya számlát saját egyedi betétkövetelményével .

Strukturális megközelítés: A strukturális megközelítés használatával újra meg kell változtatnia a tesztelt betétkódot.

Az OOP megközelítése : De objektumorientált megközelítéssel csak létrehoz egy új osztályt a betétmódszer egyedülálló megvalósításával (az alábbi képen piros színnel kiemelve).

Tehát annak ellenére, hogy a strukturális programozás kezdetben könnyű megközelítésnek tűnik, az OOP nyer hosszú távon.

Az öröklés előnye az OOP-kban

De lehet azt állítani, hogy az összes osztályban megismétlődik a kódrészlet.

Ennek leküzdéséhez hozzon létre egy szülő osztályt, mondjon "számlát", és hajtsa végre ugyanazt a befizetési és kivonási funkciót. És tegye a gyermekosztályokat örökölt "számla" osztályba. Annak érdekében, hogy számlaosztályban hozzáférhessenek a kifizetési és befizetési funkciókhoz.

A funkciókat nem szükséges egyedileg végrehajtani. Ez az öröklődés a java-ban. .