"Helló, Amigo! Mesélek neked a módszer túlterheléséről ."
"Őket is túlterhelheted?! Micsoda nap!"
– Sok mindent megtehetsz velük, de ebbe most nem megyünk bele.
"Megegyeztünk."
"A túlterhelés nagyon egyszerű művelet. Valójában nem is metódusokon végzett művelet, bár néha ijesztő néven emlegetik: parametrikus polimorfizmus ."
Emlékeztetni kell arra, hogy egy osztályban minden metódusnak egyedi névvel kell rendelkeznie.
"Igen, tudom."
"Nos, ez nem teljesen igaz. Úgy értem, egyáltalán nem igaz. Egy metódusnak nem kell egyedinek lennie. Aminek egyedinek kell lennie, az a metódus nevének és paramétereinek típusának kombinációja . Ez a kombináció is metódus aláírásként ismert."
Kód | Hozzászólások |
---|---|
|
Ez megengedett. A két módszernek egyedi neve van. |
|
És ez is megengedett. A két módszernek egyedi neve (aláírása) van. |
|
A metódusnevek itt továbbra is egyediek. |
|
De ez nem megengedett. A módszerek nem egyediek, annak ellenére, hogy különböző típusokat adnak át. |
|
De ez megengedett. A módszer paraméterei egyediek. |
– Ezt már láttam valahol.
"Igen. A " System.out.println " beírásakor az IntelliJ IDEA néhány tucat különböző paramétereket használó nyomtatási módszert javasol. A fordító egyszerűen azonosítja, majd meghívja a szükséges metódust az átadott paraméterek típusa alapján.
"Ez nem olyan nehéz. De ez nem polimorfizmus."
– Pontosabban, ez nem a módszer felülbírálása.
Egyébként szeretném leszögezni, hogy a paraméternevek lényegtelenek. Az összeállítás során elvesznek. Ha egy metódus megfelel, csak a neve és a paramétertípusai ismertek.
GO TO FULL VERSION