Ö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:
- Egyetlen öröklés
- Többszörös öröklés
- Többszintű öröklés
- Hierarchikus öröklés
- 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).

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.

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.

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.

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.

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:

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).
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 –
- Egyet visszavonni
- 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.
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.
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.
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.
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.
Ú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.
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.
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 ö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. .