A módszer túlterhelése és felülbírálása a Java polimorfizmusának két módja. A polimorfizmus két görög szó kombinációjából származik: a "poly" jelentése sok és a "morph" jelentése a forma. Ezért a polimorfizmus lehetővé teszi, hogy a módszerek sokféle formát öltsenek.

Kövesse ezt az útmutatót, ha meg szeretné tudni, hogy miként lehet túlterhelni vagy felülírni a módszereket a Java-ban.

Mi a módszer túlterhelése?

A "módszer túlterhelése" az azonos nevű osztály különböző metódusainak meghatározására utal. A módszereknek különböző aláírással kell rendelkezniük. A metódus aláírása a metódus nevének és paramétereinek kombinációja. Nem tartalmazza a visszatérési típust.

A fordító tudja, hogy melyik módszert használja, ellenőrizve a típusát, a paraméterek számát és a sorrendet.

Összefüggő: Az öröklés feltárása a Java programozási nyelvben

A módszer túlterhelése a fordítási idő polimorfizmusát bizonyítja. A fordítási idejű polimorfizmus azt jelenti, hogy a Java fordító futás közben az objektumot a funkcionalitásához köti. A fordító ennek elérése érdekében ellenőrzi a módszer aláírásait.

Ez a fajta polimorfizmus statikus vagy korai kötésként is ismert.

Lásd az alábbi módszer túlterhelési példáját:

osztály Számtani {
int kocka (int x) {
visszatér x * x * x;
}
dupla kocka (dupla x) {
visszatér x * x * x;
}
úszó kocka (float x) {
visszatér x * x * x;
}
public static void main (String [] érvel) {
Számtani myMultiplication = új számtani ();
System.out.println ("Az 5-ös kocka" + myMultiplication.cube (5));
System.out.println ("Az 5.0 kocka" + myMultiplication.cube (5.0));
System.out.println ("A 0,5-es kocka" + myMultiplication.cube (0,5));
}
}

Kimenet:

Az 5-ös kocka 125
Az 5.0 kocka 125,0
A 0,5-es kocka 0,125

A fenti kód megmutatja, hogyan lehet különféle kockákat szerezni (int, kettős, úszó) ugyanazon módszer alkalmazásával.

Általában a metódustúlterhelést alkalmazzák hasonló módszerek definiálására különböző paramétertípusokkal.

Mi a módszer felülírása?

Ez a módszer egy alosztályon belüli eltérő megvalósítására utal. A metódust már meg kell határozni a szülő osztályban.

A felülíró metódusnak (vagyis az alosztályban szereplőnek) ugyanazzal a metódus-aláírással kell rendelkeznie, mint a szuperosztályban. A felülbírálási módszer visszatérési típusa ugyanaz lehet, vagy annak egy altípusa, mint a szuperosztályban.

A felülbírálást általában arra használják, hogy az objektum viselkedését egy specifikusan megvalósítsák az alosztályban.

osztály Fiók
public void message () {
System.out.println ("
Köszönjük, hogy számlát nyitott nálunk! ");
}
public static void main (String args []) {
MyAccount = új fiók ();
Megtakarítások mySavings = új megtakarítások ();
FixedDeposit myFixedDepo = new FixedDeposit ();
myAccount.message ();
mySavings.message ();
myFixedDepo.message ();
}
}
class Megtakarítás kiterjeszti a fiókot {
public void message () {
System.out.println ("
Köszönjük, hogy megtakarítási számlát nyitott nálunk! ");
}
}
A FixedDeposit osztály kiterjeszti a fiókot {
public void message () {
System.out.println ("
Köszönjük, hogy lekötött betétszámlát nyitott nálunk! ");
}
}

Kimenet:

Köszönjük, hogy számlát nyitott nálunk!
Köszönjük, hogy megtakarítási számlát nyitott nálunk!
Köszönjük, hogy lekötött betétszámlát nyitott nálunk!

A fenti példa bemutatja, hogy a módszer hogyan üzenet() alosztályokban felülírják Megtakarítás és FixedDeposit. Különböző üzenetek jelennek meg a megtakarítási számlával rendelkező bankszámlatulajdonosok és a lekötött betétszámlával rendelkezők számára.

Összefüggő: Mit kell tudni a karakterláncok Java használatáról

Érdemes megjegyezni azt is, hogy a módszer felülbírálása a futásidejű polimorfizmust vagy a dinamikus módszer diszpécserét mutatja be. Ez azt jelenti, hogy a meghívandó metódust futás közben oldják meg, nem pedig fordításkor.

Használja a kulcsszót, hogy elkerülje a módszer felülírását végső.

végső érvénytelen üzenet () {
System.out.println ("
Köszönjük, hogy számlát nyitott nálunk! ");
}

Amikor egy alosztály megpróbálja felülírni, fordítási hiba lép fel.

Ideális esetben a konstruktoron belül meghívott összes metódusnak meg kell felelnie végső. Ennek célja, hogy elkerülje az alosztályok által esetlegesen okozott nem kívánt változásokat.

Előfordulhat, hogy egy felülbírált módszerhez kell hozzáférnie az felülbíráló módszeren belül. Használhatja a kulcsszót szuper amelyet a pont operátor követ (.) és a módszer nevét ilyen esetben.

Tekintsük a szuperosztályt Állat.

osztály Állat {
public void move () {
System.out.println ("
Tudok mozogni. ");
}
}

Az alábbiakban egy alosztályt nevezünk Hal, ez felülírja mozog():

osztályú hal kiterjeszti az állatot {
public void move () {
System.out.println ("
Tudok úszni.");
super.move ();
}
public static void main (String args []) {
Hal Tilapia = új hal ();
Tilapia.move ();
}
}

Kimenet:

Tudok úszni.
Tudok mozogni.

A módszer felülbírálásakor ügyelnie kell a használt hozzáférés-módosítóra is. Az alosztály módosítójának ugyanolyan láthatósági vagy magasabb szintűnek kell lennie, mint az alaposztályban. Például, ha az alaposztály metódusát a következőként definiáljuk védett, akkor a felülbíráló módszer vagy lehet védett vagy nyilvános.

Egyszerű kód polimorfizmussal

A módszer felülírása és a túlterhelés fontos a kód egyszerűsítése szempontjából, és az egyszerű kód jó gyakorlat.

Miért? Képzeljen el egy komplex kódbázist, amely több ki-be járással rendelkezik, mint a Grand Central Station. Most képzelje el, hogy egy pusztító hiba elkezdi pusztítani a kemény munkát a szeme előtt. El kell különíteni a fertőzés forrását, és ezt gyorsan meg kell tennie.

Sok szerencsét, nem egyszerűsítette a kódját... Most egy igazi leckét kap a kriptográfiáról. Hatékony adatstruktúrák alkalmazása és a kód rövidítése érdekében mindent megtesz (például a DRY szem előtt tartása) a legjobb védekezés az ilyen helyzetek ellen.

A Java tanulási listán a következő helyen tömbökkel kell dolgozni. Fontos adatstruktúrák, amelyeket az adatpontok kötegeinek tárolására használnak.

Email
Hogyan lehet műveleteket létrehozni és végrehajtani a Java tömbökön

Java tanulás? Hagyja, hogy a tömbök könnyedén kezeljék az adatait.

Olvassa el a következőt

Kapcsolódó témák
  • Programozás
  • Jáva
  • Kódolási oktatóanyagok
A szerzőről
Jerome Davidson (15 cikk megjelent)

Jerome a MakeUseOf munkatársa. A programozásról és a Linuxról szóló cikkeket ismerteti. Ő is kriptográfia rajongó, és mindig tartja a fülét a kriptográfia területén.

Jerome Davidsontól többet

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.

.