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 |
---|---|
|
Ez megengedett. A két módszernek egyedi neve van. |
|
És ezt is. A két módszernek egyedi neve (aláírása) van. |
|
A módszerek még mindig egyediek |
|
De ez nem megengedett . A módszerek nem egyediek . Annak ellenére, hogy különböző típusokat adnak vissza. |
|
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.
GO TO FULL VERSION