Különbség a túlterhelés és a felülbírálás között
Mielőtt mélyebben belemerülnénk a túlterhelés és a felülbírálás közötti különbségekbe, meg kell értenünk, mi azok valójában és a forgatókönyvek, amelyekben ezeket különösen használják? A Java újszülöttjei gyakran összekeverednek a kettő között, ám teljesen különböznek egymástól, és sajátos forgatókönyveikben használják őket. A módszer túlterhelése akkor fordul elő, amikor több módszer van azonos névvel, de különböző aláírásokkal. Az aláírások tartalmazzák a módszer paramétereinek számát, a paraméterek adattípusát. A visszatérési módszer nem szerepel az aláírásban. Ennek célja az azonos módszernév újrafelhasználásának és a programok olvashatóságának javítása. A módszer felülbírálása akkor fordul elő, ha az öröklés akkor történik, amikor a származtatott osztály az alaposztálytól örököli a tulajdonságokat. Ez magában foglalja az alap osztály azonos módszerének meghatározását egy származtatott osztályban, ugyanazzal a paraméterrel és a visszatérés típusával annak meghatározása érdekében, hogy az adott módszer milyen specifikus funkcionalitást / megvalósítást nyerjen az osztályban.
Vegyünk egy forgatókönyvet, amikor a programozónak meg kell találnia a geometriai ábra területét. Az egyes alakok területe különbözik egymástól. Például a négyzet területének meghatározásához csak egy „oldal” paraméterre van szükség, a téglalapra két paraméterre „hossz és szélesség” van szükség, míg a kör esetében „sugara” van szükség, amely tizedes lehet. Ennek a célnak a megoldására a túlterhelést akkor végezzük, amelyben a metódusterületnek különböző paraméterei és adattípusa van egy különféle ábraterülethez. Gondoljunk a bankrendszer helyzetére, bár a több alkalmazott módszer és eljárás minden alkalmazott számára azonos, kivéve néhányat, mint például a normál és az időskorúak kamatlába. Ebben az esetben a módszer felülbírálása a kamatlábak módszer különböző megvalósításaival történik, mind a normál, mind az időskorú osztályban, a „Banki kamatlábak” alaposztályt örökölve.
Összességében összehasonlítás a túlterhelés és a felülbírálás között (Infographics)
Az alábbiakban a 7 legnépszerűbb összehasonlítás a túlterhelés és a felülbírálás között :
Legfontosabb különbségek a túlterhelés és az felülbírálás között
Beszéljünk meg a túlterhelés és a felülbírálás közötti főbb különbségekről:
- A módszer túlterhelésekor a metódusok azonosak vagy eltérőek lehetnek a hozzáférési specifikátoroknak / módosítóknak a metódus nevében, míg az Alaphelyzet felülbíráló módszere (felülbírált módszer) korlátozott hozzáférés-specifikátorral kell rendelkezni, mint egy szülőosztály módszere. Például, ha egy alaposztály módszere védett, akkor a privát gyermekmód módszer nem engedélyezett.
- A teljesítmény szempontjából a túlterhelés jobb teljesítményt nyújt, mint a felülbírálás, mivel a módszer túlterhelésére fordítási időben kerül sor.
- A módszer visszatérési típusa soha nem része a módszernek a túlterhelésnek, tehát nem számít, hogy a különböző túlterhelt módszereknek azonos vagy eltérő visszatérési típusa van, míg a Módszer felülbíráló visszatérési típusában mind a szülő, mind az alap osztály módszerének pontosan azonosnak kell lennie. .
- Ha a kötésről beszélünk, akkor a túlterhelés statikus kötésű, míg a felülbírálás dinamikus kötésű.
- A módszer által kiváltott kivételnek nincs jelentősége a túlterhelt módszernél, ha az egyik módszer kivételt tesz, a többi túlterhelt módszer ugyanúgy vagy eltérő kivételt képes / nem képes dobni, de felülíró, felülíró módszer (módszer származtatott osztályban) nem dobhatja el a magasabb hierarchia kivételét, mint felülbírált módszer (módszer alaposztályban).
- Az összes specifikátor, mint például a magán, a végleges és a statikus, nem használható a metódus felülbírálásában, míg az összes hozzáférési specifikátor megengedett a módszer túlterhelésében.
Túlterhelés és felülbírálás összehasonlító táblázata
Az alábbi táblázat összefoglalja a túlterhelés és a felülbírálás összehasonlításait:
S.No. | A túlterhelés | nyomós |
1 | A módszer túlterhelésének célja a módszerek fokozott meghatározása a különféle helyzetekben. | A módszer felülbírálása a szülőosztályban meghatározott módszerek speciális megvalósításának biztosítása érdekében történik. |
2 | A módszer túlterhelése egyetlen osztályban történik, amelyben az egyik osztály eltérő definícióval rendelkezik a módszer számára. | A módszer felülbírálása két olyan osztály között történik, amelyek között IS-A (öröklési) kapcsolat van. |
3 | A módszer túlterhelése fordítási időben történik, és ezért Compile time Polymorphism néven ismert. | A módszer felülbírálása futásidejűleg történik, és ezért futásidejű polimorfizmusnak nevezik. |
4 | A paraméterek sorrendjének, az adattípusnak és a paraméterek számának eltérnie kell a módszer túlterhelése esetén. | A paraméterek sorrendjének, az adattípusnak és a számlának azonosnak kell lennie a módszer felülbírálásakor. |
5 | A módszer visszatérési típusa azonos vagy eltérhet a módszer túlterhelése esetén. Egyáltalán nem számít. | A módszer visszatérési típusának meg kell egyeznie mind a szülő, mind a gyermek osztályban, a módszer felülbírálása esetén. |
6 | A statikus módszerek túlterhelhetők, azaz ugyanabban az osztályban különböző statikus módszerek is lehetnek túlterheltek. | A statikus módszereket soha nem szabad felülbírálni, azaz a szülő osztályban és az alap osztályban a statikus módszernek nincs összefüggése közöttük. |
7 | A privát és a végső módszerek túlterhelhetők egy osztályban, azaz az osztály egynél több magán- és végső módszert tölthet be. | A magán- és a végső módszereket soha nem szabad felülbírálni egy gyermekosztályban. |
Példa a módszer túlterhelésére:
class FIgures(
public int area(int side)
(
return side*side;
)
public int area(int length, int breadth) //method overloading
(
return length*breadth;
)
public static void main(String() args)
(
Figures f = new Figures ();
System.out.println(“Area of Square “+ f.area(10));
System.out.println(“Area of Rectangle “+ f.area(12, 10));
)
)
Kimenet:
A 100-as tér területe
A 120 téglalap területe
A fenti példában a 'area ()' módszer túlterhelt, és mind a túlterhelt módszereknél különböző paraméterekkel rendelkezik. Mivel a területnek meg kell találnia mind a négyzetet, mind a téglalapot, de különböző paraméterekkel.
Példa a felülbíráló módszerre:
class BankRates( // parent(base) class
void rates()
(
System.out.println(“Rates for normal citizen is 3.5%”);
)
)
class SeniorCItizen extends BankRates( //child class inheriting parent class
void rates() // method overriding
(
System.out.println(“Rates for senior citizens is 4.5%”);
)
)
class Bank(
public static void main(String() args)
(
SeniorCItizen sc = new BankRates(); sc.rates();
)
)
Kimenet:
Az idősek aránya 4, 5%
A fenti példában a 'rate ()' módszer felülbírálásra kerül a 'SeniorCitizen' származtatott osztályban, mert azt is szeretnénk, hogy a SeniorCitizen osztályban a metódusok szintjét, de eltérő megvalósítás mellett alkalmazzuk.
Következtetés
A fenti magyarázat egyértelműen megmutatja a különbséget a túlterhelés és a felülbírálás, valamint a konkrét forgatókönyvek között, ahol ezt a kettőt használják. A programozás előtt meg kell értenie a Java ezen alapfogalmait, mivel ezek sok minden alapját képezik, és elősegítik a fejlettebb fogalmak könnyű megértését.
Ajánlott cikkek
Ez útmutatóként szolgál a túlterhelés és a felülbírálás közötti legnagyobb különbséghez. Itt tárgyaljuk a Túlterhelés és az alapvető különbségeket az infographics és az összehasonlító táblázat között is. Lehet, hogy megnézi a következő cikkeket is, ha többet szeretne megtudni -
- Funkcionális programozás vs OOP
- Mi az elsőbbség a JavaScripten?
- Hogyan működik a túlterhelés a PHP-ben?
- A túlterhelés áttekintése a C # -ben
- A Java alapon érvényes
- Python túlterhelés
- Túlterhelés és felülbírálás a C # -ben