A Java túlterhelési módszerének előnyei és hátrányai

A túlterhelt metódusok ugyanabban az osztályban lévő metódusok, amelyeknek ugyanaz a neve, de különböző változótípusokat fogadnak el argumentumként. Például egy osztály tartalmazhat két különböző "add" metódust: az egyiket, amely két dupla értéket fogad el, az "add (double a, double b)" és a másikat, amely kettőt. egész értékek, "add (int a, int b)." A számítógép automatikusan eldönti, hogy melyik metódust hívja meg futás közben, a változótípusok alapján módszer.

Rugalmasság

A túlterhelt metódusok rugalmasságot biztosítanak a programozóknak, hogy hasonló metódusokat hívjanak meg a különböző típusú adatokhoz. Ha például egy matematikai programmal dolgozik, a túlterhelést használhatja több „szorzás” osztály létrehozásához, amelyek mindegyike különböző számú argumentumot szoroz meg: a legegyszerűbb "szoroz (int a, int b)" kettőt szoroz egész számok; a bonyolultabb "szorzás (dupla a, int b, int c)" módszer megszoroz egy duplát két egész számmal -- akkor hívja meg a "szorzást" bármely olyan változókombinációra, amelyhez túlterhelt metódust hozott létre, és megkapja a megfelelő eredményt.

A nap videója

Konstruktorok

A túlterhelést a konstruktorok is használják új objektumok létrehozására különböző adatmennyiség mellett. Például a túlterhelés segítségével három különböző konstruktort hozhat létre egy "Ház" objektumhoz házszámmal, utcanévvel és színváltozókkal. A legegyszerűbb "House()" konstruktor nem vesz fel argumentumokat, és létrehoz egy házat alapértelmezett vagy üres változókkal. Egy összetettebb konstruktor, a "House (int houseNumber, String streetName)" létrehoz egy házat a megadott házszámmal és utcanévvel, de alapértelmezett vagy üres színnel. A legbonyolultabb konstruktor, a "Ház (int houseNumber, String streetName, String color)" létrehoz egy házat az összes megadott információval, semmit sem hagyva alapértelmezettként. Ezután létrehozhat egy házobjektumot a jelenleg rendelkezésre álló információk alapján, a nem elérhető információkat üresen hagyva vagy alapértelmezetten.

Kétértelmű hivatkozások

A túlterhelt metódusoknak különböző számú vagy típusú argumentumokat kell használniuk, hogy elkerüljék a kétértelműséget. Ha ugyanabban az osztályban két azonos nevű metódust hoz létre, és két egész számot fogad el argumentumként, a A Java fordító nem tud különbséget tenni a kettő között, még akkor sem, ha a bemeneti változók neve eltérő. Például az "add (int a, int b)" metódus nem létezhet ugyanabban az osztályban, mint az "add (int c, int d)" metódus.

Visszaküldési típusok

Minden túlterhelt metódushoz meg kell határoznia egy visszatérési típust. A metódusoknak különböző visszatérési típusai lehetnek – például az „add (int a, int b)” egy egész számot ad vissza, míg az „add (double a, double b)” egy dupla értéket ad vissza. A Java azonban nem tud különbséget tenni két különböző módszer között a visszatérési típusuk alapján. Ezért az "int szorzás (dupla a, dupla b)" nem létezhet ugyanabban az osztályban, mint a "kettős szorzás (kettős a, dupla b)."