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:

  1. 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.
  2. 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.
  3. 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. .
  4. 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ű.
  5. 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).
  6. 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
1A 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.
2A 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.
3A 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.
4A 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.
5A 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.
6A 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.
7A 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 -

  1. Funkcionális programozás vs OOP
  2. Mi az elsőbbség a JavaScripten?
  3. Hogyan működik a túlterhelés a PHP-ben?
  4. A túlterhelés áttekintése a C # -ben
  5. A Java alapon érvényes
  6. Python túlterhelés
  7. Túlterhelés és felülbírálás a C # -ben

Kategória: