"Hallo, Amigo! Ik ga je iets vertellen over method overloading ."
"Je kunt ze ook overbelasten?! Wat een dag!"
"Je kunt er veel mee doen, maar daar gaan we nu niet op in."
"Het is een afspraak."
"Overbelasting is een heel eenvoudige bewerking. Eigenlijk is het niet eens een bewerking op methoden, hoewel er soms naar wordt verwezen met een angstaanjagende naam: parametrisch polymorfisme ."
Wat u moet onthouden, is dat elke methode in een klasse een unieke naam moet hebben.
"Ja ik weet het."
"Nou, dat is niet helemaal waar. Ik bedoel, het is helemaal niet waar. Een methode hoeft geen unieke naam te hebben. Wat uniek moet zijn, is de combinatie van een methodenaam en de soorten parameters. Deze combinatie is ook bekend als een methodehandtekening."
Code | Opmerkingen |
---|---|
|
Dit is toegestaan. De twee methoden hebben unieke namen. |
|
En ook dit is toegestaan. De twee methoden hebben unieke namen (handtekeningen). |
|
De methodenamen zijn hier nog steeds uniek. |
|
Maar dit is niet toegestaan. De methoden zijn niet uniek, ook al worden er verschillende typen doorgegeven. |
|
Maar dit is toegestaan. De methodeparameters zijn uniek. |
"Dat heb ik al ergens gezien."
"Ja. Als je " System.out.println " typt, stelt IntelliJ IDEA een paar dozijn versies van afdrukmethoden voor die verschillende parameters gebruiken. De compiler identificeert eenvoudig de vereiste methode en roept deze vervolgens aan op basis van de typen parameters die je doorgeeft."
'Dat is niet zo moeilijk. Maar het is geen polymorfisme.'
"Of beter gezegd, het is geen overheersende methode."
Overigens wil ik erop wijzen dat de parameternamen niet relevant zijn. Ze gaan verloren tijdens het compileren. Zodra aan een methode is voldaan, zijn alleen de naam en parametertypen bekend.
GO TO FULL VERSION