Öröklés be Java (példával)

Mi az öröklés?

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

Miben szerepel az öröklődés Java?

Java Öröklés egy olyan mechanizmus, amelyben az egyik osztály egy másik osztály tulajdonát szerzi meg. In Java, ha „Is-A” kapcsolat létezik két osztály között, akkor az öröklődést használjuk. A szülőosztályt szuperosztálynak, az örökölt osztályt pedig alosztálynak nevezzük. A kulcsszó extends az alosztály használja a szuperosztály jellemzőinek öröklésére. Az öröklődés fontos, mivel a kód újrafelhasználásához vezet.

Java Öröklődési szintaxis:

class subClass extends superClass  
{  
   //methods and fields  
} 

Az öröklődés típusai Java

Itt vannak az öröklődés különböző típusai Java:

  1. Egyetlen öröklés
  2. Többszörös öröklés
  3. Többszintű öröklés
  4. Hierarchikus öröklés
  5. Hibrid öröklés

1. Egyszeri öröklődés:

Az egyszeres öröklődésben az egyik osztály kiterjeszt egy másik osztályt (csak egy osztályt).

Egyetlen öröklődés be Java
Egyetlen öröklés

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

2. Többszörös öröklődés:

A többszörös öröklődés az egyik öröklődés Java olyan típusok, ahol egy osztály több osztályt is kiterjeszt. Java nem támogatja a többszörös öröklést.

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

A fenti diagram szerint a C osztály kiterjeszti az A és B osztályt egyaránt.

3. Többszintű öröklődés:

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

Többszintű öröklődés be Java
Többszintű öröklés

A diagram szerint a C osztály a B alosztálya, a B pedig az A osztály alosztálya.

4. Hierarchikus öröklődés:

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


Hierarchikus öröklődés be Java
Hierarchikus öröklés

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

5. Hibrid öröklődés:

A hibrid öröklődés az egyik öröklődési típus Java amely az egyszeres és többszörös öröklődés kombinációja.


Hibrid öröklés
Hibrid öröklés

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

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

Öröklés be Java Példa

Itt van egy példa az öröklődésre Java:


Például az Java Öröklés
Java Példa öröklődésre

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 „this” kulcsszóhoz. A szuper kulcsszó a szülőosztály bármely adattagjának vagy metódusának elérésére használható. A szuper kulcsszó itt használható változó, módszer és konstruktor szint.

Syntax:

super.<method-name>();

Ellenőrizze még:- ezt a kulcsszót Java: Mi az és hogyan kell használni a Példával

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

Fontolja meg ugyanazt a banki alkalmazást a előző példa.

Két különböző típusú számlát kell nyitnunk, az egyiket megtakarításra, a másikat pedig az ellenőrzésre (más néven aktuális).

Öröklés az OOP-ban

Hasonlítsuk össze és tanulmányozzuk, hogyan közelíthetjük meg a kódolást a strukturált és objektumorientált programozási perspektíva.

Strukturális megközelítés: A strukturált programozásban két függvényt fogunk létrehozni –

  1. Egyet visszavonni
  2. A másik pedig a letéti akcióhoz.

Mivel ezeknek a funkcióknak a működése változatlan marad a fiókokban.

Öröklődés az OOP-ban

OOP megközelítése: Használata közben a OOP-k programozási megközelítés. Két osztályt hoznánk létre.

  • Mindegyik rendelkezik befizetési és kifizetési funkciókkal.
  • Ez felesleges többletmunkát jelent.

Öröklődés az OOP-ban

Módosítási kérelem a szoftverben

Most a szoftveriparban oly gyakori dolog követelményspecifikációja megváltozik. Fel kell vennie egy funkcionalitású kiemelt bankszámlát folyószámlahitellel. Háttérként a folyószámlahitel egy olyan lehetőség, ahol a számláján rendelkezésre álló egyenlegnél nagyobb összeget vehet fel.

Módosítási kérelem a szoftverben

Strukturális megközelítés: Funkcionális megközelítéssel módosítanom kell a visszavonási függvényemet, amely már tesztelt és alaphelyzetbe került. És az alábbiakhoz hasonló módszer hozzáadása gondoskodik az új követelményekről.

Módosítási kérelem a szoftverben

Az OOP megközelítése: Az OOP megközelítését használva csak egy új osztályt kell írnia a visszavonási függvény egyedi megvalósításával. Soha nem nyúltunk a tesztelt kódrészlethez.

Módosítási kérelem a szoftverben

Újabb változtatási kérelem

Mi van, ha a követelmény tovább változik? Szeretné hozzáadni a hitelkártya-számlát saját egyedi befizetési követelményével.

Többszörös módosítási kérelem a szoftverkövetelményben

Strukturális megközelítés: Strukturális megközelítést alkalmazva újra meg kell változtatnia a letéti kód tesztelt darabját.

Strukturális megközelítés a többszörös módosítási kérelemhez a szoftverben

OOP megközelítése: De objektum-orientált megközelítéssel csak egy új osztályt hoz létre a letéti módszer egyedi megvalósításával (az alábbi képen pirossal van kiemelve). Tehát bár a strukturális programozás kezdetben egyszerű megközelítésnek tűnik, az OOP hosszú távon nyer.

Az OOP megközelítése a többszörös módosítási kérelemhez

Az öröklődés előnyei az OOP-ban

De lehet vitatkozni, hogy minden osztályban ismétlődő kódrészletek vannak.

Ennek kiküszöbölésére hozzon létre egy szülőosztályt, mondja ki a „fiókot”, és hajtsa végre ugyanazt a befizetési és kifizetési funkciót. És a gyermekosztályokat örökölt „számla” osztályokká. Annak érdekében, hogy a számlaosztályon hozzáférhessenek a kifizetési és befizetési funkciókhoz. A funkciókat nem kell külön-külön megvalósítani. Ez van Öröklődés java-ban. .

Az öröklődés előnyei az OOP-ban

Az öröklődés előnyei az OOP-ban