A módszer túlterhelése

Mai új és érdekes témánk a módszer túlterhelés . Legyen óvatos – a módszer túlterhelését nem szabad összekeverni a módszer felülbírálásával.

A felülírással ellentétben a túlterhelés nagyon egyszerű művelet. Valójában ez nem egy metódusokon végzett művelet, bár néha a parametrikus polimorfizmus szörnyű kifejezéssel illetik .

A probléma az, hogy egy osztályon belül minden metódusnak egyedi névvel kell rendelkeznie. Nos, ez nem teljesen pontos. Nos, pontosabban, ez egyáltalán nem pontos. A metódus nevének nem kell egyedinek lennie. Aminek egyedinek kell lennie, az a metódus nevének és a metódus paramétereinek típusainak egyesítése. Ez az unió a módszer aláírásaként ismert

Példák:

Kód Leírás
public void print();
public void print2();
Ez megengedett. A két módszernek egyedi neve van.
public void print();
public void print(int n);
És ezt is. A két módszernek egyedi neve (aláírása) van.
public void print(int n, int n2);
public void print(int n);
A módszerek még mindig egyediek
public int print(int a);
public void print(int n);
De ez nem megengedett . A módszerek nem egyediek . Annak ellenére, hogy különböző típusokat adnak vissza.
public int print(int a, long b);
public long print(long b, int a);
De ezt megteheted . A módszer paraméterei egyediek

Az aláírás tartalmazza a metódus nevét és a paramétertípusokat . Nem tartalmazza a metódus visszatérési típusát és paraméterneveit . Egy osztálynak nem lehet két, azonos aláírású metódusa – a fordító nem fogja tudni, melyiket hívja meg.

A paraméternevek nem számítanak , mivel a fordítás során elvesznek. A metódus lefordítása után csak a neve és a paramétertípusai ismertek. A visszatérési típus nem vész el, de a metódus eredményét nem kell semmihez hozzárendelni, így az sem szerepel az aláírásban.

Az OOP elvei szerint a polimorfizmus egyetlen interfész mögé rejti a különböző implementációkat. System.out.println()Amikor például meghívjuk a metódust, különböző metódusok hívódnak meg attól függően, hogy melyik argumentumot adjuk át. Ez a működési polimorfizmus.

Ez az oka annak, hogy az azonos nevű, azonos osztályba tartozó különböző módszereket a polimorfizmus gyenge formájának tekintik.