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).
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.
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.
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.
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.
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 -
- Egy visszavonásra
- 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. .