Kulcskülönbség – Java túlterhelés és felülbírálás
Az objektum-orientált programozás (OOP) a szoftverfejlesztés egyik fő paradigmája. Ez egy módszertan egy program tervezésére osztályok és objektumok használatával. Az osztály egy tervrajz. Leírja, hogy mit kell tartalmaznia az objektumnak. Meghatározza azokat a tulajdonságokat vagy attribútumokat, valamint azokat a metódusokat, amelyekből az objektumnak állnia kell. Ezért egy objektum egy osztály példánya. Ezek az objektumok kommunikálnak más objektumokkal. Az OOP egyik fő fogalma a polimorfizmus. Ez egy tárgy azon képessége, hogy többféleképpen viselkedjen. A polimorfizmust két részre osztják, amelyek a túlterhelés és a felülbírálat. Ez a cikk a kettő közötti különbséget tárgyalja a Java-ban. A Java túlterhelés és felülírás közötti fő különbség az, hogy a túlterhelés több, azonos nevű metódus létrehozásának képessége különböző implementációkkal, a felülbírálás pedig egy olyan alosztály metódus megvalósítását jelenti, amely már létezik a szuperosztályban.
Mi az a túlterhelés a Java-ban?
A túlterhelés több, azonos nevű metódus létrehozásának lehetősége, különböző megvalósításokkal. Lásd az alábbi Java kódot.
01. ábra: Java program, amely különböző számú argumentummal magyarázza a túlterhelést
A fenti program szerint az A osztály két azonos nevű metódust tartalmaz. Az első összegező módszernek két paramétere van. A második összegezési módszernek három paramétere van. Egy A típusú objektum létrehozásakor és a sum(2, 3) meghívásakor a sum metódust fogja meghívni két paraméterrel, amelyek a sum(int a, int b) és 5-öt ad vissza. A típusú objektum létrehozásakor és a sum(2) meghívásakor, 3, 4), meghívja a másik összeg metódust három paraméterrel, ami a sum(int a, int b, int c) és 9.
A metódus neve ugyanaz, de a paraméterek száma eltérő. Megfigyelhető, hogy ugyanaz az objektum eltérően viselkedik. Ezt a koncepciót túlterhelésnek nevezik. Statikus kötésnek vagy fordítási időpolimorfizmusnak is nevezik.
Túlterhelés is előfordulhat különböző típusú adatokkal. Lásd az alábbi Java kódot.
02. ábra: Java program, amely különböző számú argumentummal magyarázza a túlterhelést
A fenti program szerint az A osztály két azonos nevű metódusból áll. A sum(int a, int b) metódus két egész értéket kap. Az összeg(double a double b) két dupla értéket kap. Az A típusú objektum létrehozásakor és a sum(2, 3) meghívásakor a sum(int a, int b) függvényt hívja, és az 5 értéket adja vissza. A sum(3.4, 5.6) meghívásakor a sum(double a double) függvényt hívja. b) és adja vissza a 9,0 értéket. Ebben a példában a metódusoknak ugyanaz a neve, de más típusú változók. Ez is túlterhelt.
Mi a felülbírálás a Java-ban?
A Java-ban lehetőség van alosztályok létrehozására már meglévő osztályokkal. Az új osztály elejétől való létrehozása helyett lehetőség van a már meglévő osztály tulajdonságainak és metódusainak használatára. A meglévő osztály a szuperosztály, a származtatott osztály pedig az alosztály. Ha az alosztály implementációt biztosít egy metódushoz, amely már benne van a szuperosztályban, azt felülírásnak nevezzük. Tekintse meg az alábbi Java programot.
03. ábra: Java program a felülbíráláshoz
A fenti program szerint az A osztálynak metódusmegjelenítése(). A B osztály az A osztályból indul ki, így az A osztály tulajdonságai és metódusai elérhetők a B osztály számára. A B osztálynak a display() metódusa van egy adott megvalósítással. Az A típusú objektum létrehozásakor és a megjelenítési metódus meghívásakor a B kimenetet adja. Bár az A osztálynak van megjelenítési metódusa, a B osztályú megjelenítési metódus felülbírálja. Az alosztály olyan metódust valósít meg, amely már létezik a szuperosztályban.
Ez a fogalom a polimorfizmus egy fajtája, amelyet felülbírálásnak neveznek. Késői kötésnek, dinamikus kötésnek, futásidejű polimorfizmusnak is nevezik.
Mi a hasonlóság a Java túlterhelése és felülírása között?
- Mindkettő a polimorfizmus típusa.
- Túlterhelésnél és felülírásnál a metódusoknak ugyanaz a neve.
Mi a különbség a Java túlterhelése és felülírása között?
Túlterhelés vs felülírás Java-ban |
|
A Java túlterhelése több, azonos nevű metódus létrehozásának képessége különböző megvalósításokkal. | A Java felülírása egy speciális megvalósítást biztosít az alosztály metódusában a szuperosztályban már létező metódusokhoz. |
Paraméterek | |
Túlterhelés esetén a metódusoknak ugyanaz a neve, de más paraméterek száma vagy más típusú paraméterek. | Felülbíráláskor a metódusoknak ugyanaz a neve, és a paramétereknek is azonosaknak kell lenniük. |
Témák | |
Túlterhelés történik az osztályon belül. | A felülírás az öröklődési kapcsolatban álló két osztályon belül történik. |
Szinonimák | |
A túlterhelést lefordított idő polimorfizmusnak nevezzük. | A felülbírálást futásidejű polimorfizmusnak nevezik. |
Összefoglaló – Túlterhelés vs felülírás Java-ban
A polimorfizmus az objektum-orientált programozás egyik fő fogalma. Lehetővé teszi, hogy egy objektum többféleképpen viselkedjen. Ez lehet túlterhelés vagy felülírás. A túlterhelés a fordítási idejű polimorfizmus, a felülbírálás pedig a futásidejű polimorfizmus. Hasznosak a szoftveralkalmazások fejlesztésében. A felülbírálás és a túlterhelés közötti különbség az, hogy a túlterhelés több, azonos nevű metódus létrehozásának képessége különböző implementációkkal, a felülbírálás pedig egy adott megvalósítást biztosít az alosztály metódusában a szuperosztályban már létező metódusokhoz. Javaban túlterhelés és felülírás is megvalósítható.
Töltse le a PDF Overloading vs Overriding Java-ban című dokumentumot
Letöltheti ennek a cikknek a PDF-verzióját, és offline célokra használhatja az idézet jegyzetének megfelelően. Kérjük, töltse le a PDF verziót innen: Különbség a túlterhelés és a felülírás között Java-ban