Az öröklés az objektum-orientált programozás egyik alapfogalma. A programozásban az öröklés szó olyan kapcsolatot jelent, amelyben a gyermek osztály felveszi a szülő osztály állapotát és viselkedését.

Az öröklés célja a szoftverfejlesztésben a biztonságos és megbízható szoftverek újrafelhasználásának megkönnyítése. Az öröklés használatának egyik fő előnye, hogy kiküszöböli a redundáns kódot a programokban.

Hogyan működik az öröklés

Az öröklés mögött az az elképzelés áll, hogy sok osztálynak vagy objektumnak ugyanazok az attribútumok és módszerek vannak. Ezért a megbízható szoftverek gyártásának szellemében új osztályok meríthetnek a már meglévő kapcsolódó osztályokból, és szükség esetén kibővíthetik a meglévő állapotokat és viselkedést.

Az öröklés működésének valós példája a gyümölcsök figyelembe vétele lenne. Ez egy széles címke, amely különféle elemek befogadására szolgál.

Az alma gyümölcs és a narancs is. A narancs azonban nem alma, így nem lenne gyümölcs a készleten, ha üzlet lenne. Talán lehet egy gyümölcs rész a készletben, és ebben a részben konkrétabb elemek, például alma és narancs.

Az öröklés így működik.

Az öröklés használata Java-ban

Az öröklődés bármely olyan programozási nyelvben használható, amely a objektum-orientált programozási paradigma. Az öröklés felhasználásának pontos módja azonban az adott programozási nyelvtől függ.

Például, A C ++ objektum-orientált programozási nyelv is. A C ++ támogatja az úgynevezett többszörös öröklődést, míg a Java csak az egyszeri öröklődést támogatja.

Ez azt jelenti, hogy a Java-ban egy szülő osztálynak sok gyermek osztálya lehet, de minden gyermek osztálynak csak egy szülő osztálya lehet (egyetlen öröklés). Van azonban mód arra, hogy a Java-ban közvetett többszörös öröklődést érjünk el, nagyszülő, szülő és gyermek kapcsolat létrehozásával.

A szülő osztály létrehozása Java-ban

A szülőosztály kiválasztásának folyamata a szoftverkövetelmények dokumentumból objektum-orientált elemzésnek nevezhető. E folyamat során az „is a” kifejezést gyakran használják a lehetséges öröklési kapcsolatok azonosítására. A fenti példánkból merítve látnia kell, hogy a gyümölcs a szülői osztályunk lesz.

Gyümölcs szülő osztály példa


gyümölcs osztály nyilvános osztálya
// Változó nyilatkozat
védett húrmag;
védett String skinColor;
védett húr íze;
// Alapértelmezett konstruktor
nyilvános gyümölcs () {
mag = "";
skinColor = "";
íz = "";
}
// Elsődleges kivitelező
közönséges gyümölcs (húrmag, húrhéjszín, húrízű) {
ez.mag = mag;
this.skinColor = skinColor;
ez.íze = íze;
}
// szerelők és beállítók
public String getSeed () {
visszatérő mag;
}
public void setSeed (String seed) {
ez.mag = mag;
}
public String getSkinColor () {
visszatérő skinColor;
}
public void setSkinColor (String skinColor) {
this.skinColor = skinColor;
}
public String getTaste () {
visszatérő íz;
}
public void setTaste (String íz) {
ez.íze = íze;
}
// étkezési módszer
public void eat () {
// a gyümölcs elfogyasztásának általános kódja
}
// lé módszer
public void juice () {
// általános kód a gyümölcs levének elkészítéséről
}
}

A fenti szülőosztály egyik legismertebb aspektusa az egyes változó deklarációkhoz használt hozzáférés-módosító. A „védett” hozzáférés-módosító ideális a szülő osztályokban való használatra, mert megakadályozza, hogy a nem gyermek osztályok hozzáférjenek a szülő osztály adatattribútumaihoz.

A kódban lentebb megismerheted a konstruktorokat, a gettereket és a beállítókat, amelyek bármely Java osztály általános építőelemei. Végül két olyan módszert ismertet meg (gyümölcslé és étkezés), amelyeket a programunk szülői osztályában hoznak létre, mivel univerzálisak minden gyümölcs számára - minden gyümölcs fogyasztható és gyümölcslé fogyasztható.

Gyerekosztályok létrehozása Java-ban

A gyermekosztályokat általában speciális vagy származtatott osztályoknak nevezik, mivel örökölik az állapotot és a viselkedést a szülőtől, és gyakran ezeket az attribútumokat sajátosabbá alakítják.

Példánk folytatásával meg kell tudni, hogy miért lenne a narancs a fenti gyümölcsosztály megfelelő gyermekosztálya.

Narancssárga gyermek osztály példa


narancssárga osztály az Orange kiterjeszti a gyümölcsöt
// változó deklaráció
magán int legfelsõbbek;
// alapértelmezett konstruktor
narancssárga () {
legfelsõbb = 0;
}
// elsődleges konstruktor
közönséges narancs (húrmag, húrbőrszín, húr íz, int legfelsőbb) {
szuper (mag, bőrszín, íz);
ez.szupremes = legfelsőbb;
}
// szerelők és beállítók
public int getsupremes () {
visszatérési legfelsõbbek;
}
public void setsupremes (int supremes) {
ez.szupremes = legfelsőbb;
}
// étkezési módszer
public void eat () {
// hogyan lehet narancsot enni
}
// lé módszer
public void juice () {
// hogyan gyümölcslé és narancs
}
// hámozási módszer
public void peel () {
// hogyan kell meghámozni egy narancsot
}
}

Különbség van abban, hogy néz ki egy szokásos Java osztálydeklaráció és mi van a fenti kódban. A „kiterjeszti” kulcsszó az, amit a Java-ban használnak az öröklés lehetővé tételére.

A fenti példánkban a gyermekosztály (narancs) kiterjeszti a szülőosztályt (gyümölcs). Ezért a gyümölcsosztály állapotához és viselkedéséhez a narancssárga osztály hozzáférhet és módosíthatja.

A narancssárga osztályunk egyedülálló attribútumát a változónév legfőbb pontjaival azonosítják (ami a narancsokban található kis szegmensek hivatalos neve). Itt játszik szerepet a specializáció; nem minden gyümölcsnek van legfelsõbb, de minden narancsnak van, ezért logikus a legfelsõbb változó narancssárga osztályra való fenntartása.

A „héj” módszer hozzáadása a már létező „enni” és „gyümölcslé” módszerekhez szintén logikus, mert bár nem minden gyümölcs hámozható, a narancsokat gyakran hámozzák.

Ne feledje, hogy ha nem szándékozunk megváltoztatni a meglévő „étkezési” és „gyümölcslé” módszereket, akkor nem kell ezeket felvennünk a narancs osztályunkba. A narancs osztályú módszerek felülírnak minden hasonló módszert a gyümölcs osztályban. Tehát, ha minden gyümölcsöt egyformán fogyasztanak és gyümölcslét fogyasztanak, akkor nem kell ezeket a módszereket létrehoznunk a narancs osztályban.

A szerepkonstruktorok az öröklésben játszanak

Alapértelmezés szerint a szülőosztály-konstruktorokat a gyermekosztályok öröklik. Ezért ha gyermekosztály objektum jön létre, ez azt jelenti, hogy a szülő osztály objektum is automatikusan létrejön.

Visszatérve a példánkra, minden egyes alkalommal, amikor új narancssárga objektum jön létre, gyümölcsobjektum is létrejön, mert a narancs gyümölcs.

A színfalak mögött, amikor gyermekosztály objektum jön létre, először a szülő osztály konstruktorát hívják meg, majd a gyermek osztály konstruktorát. A fenti narancssárga gyermekosztályunkban, ha egy narancssárga objektum paraméterek nélkül jön létre, akkor az alapértelmezett gyümölcsosztály-konstruktort hívjuk meg, amelyet az alapértelmezett narancssárga osztályú vállalkozónk követ.

A fenti elsődleges konstruktorunk „szuper” módszerére azért van szükség, mert meghatározza, hogy az elsődleges konstruktor - és nem az alapértelmezett konstruktor - a szülő gyümölcs osztályt kell meghívni, amikor egy narancssárga, paraméteres objektum van létre.

Mostantól használhatja az öröklést a Java-ban

Ebből a cikkből megtudhatta, hogy mi az öröklés, hogyan működik, és miért olyan fontos fogalom a programozásban. Most létrehozhatja az öröklési kapcsolatokat a Java programozási nyelv használatával. Továbbá most már tudja, hogyan lehet megkerülni a Java egyetlen öröklési szabályát egy nagyszülő kapcsolat létrehozásával.

Képhitel: Andreas Wohlfahrt /Pexels

Email
Az objektumorientált kód megszervezése örökléssel

Az objektumorientált programozás megfelelővé tétele azt jelenti, hogy tudnia kell az öröklésről és arról, hogy ez hogyan egyszerűsítheti a kódolást és csökkentheti a hibákat.

Olvassa el a következőt

Kapcsolódó témák
  • Programozás
  • Jáva
  • Objektumorientált programozás
A szerzőről
Kadeisha Kean (3 cikk megjelent)

Kadeisha Kean Full-Stack szoftverfejlesztő és műszaki / technológiai író. Különleges képessége van a legösszetettebb technológiai koncepciók egyszerűsítésére; bármilyen technológiai kezdő számára könnyen érthető anyag előállítása. Szenvedélyes az írás, az érdekes szoftverek fejlesztése és a világ körüli utazás (dokumentumfilmek révén).

Több Kadeisha Kean-tól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!

Még egy lépés…!

Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.

.