Junior
Wat moet twee methoden onderscheiden zodat we ze als overload kunnen beschouwen?
sobes.tech AI
Antwoord van AI
Om twee methoden als overload te worden beschouwd, moeten ze aan de volgende voorwaarden voldoen:
- Dezelfde methodenaam. De naam van de methoden moet identiek zijn.
- Verschillende methodesignatures. De signature van de methode omvat de naam van de methode en de lijst van parameter types (aantal, volgorde en types). Het returntype van de methode maakt geen deel uit van de signature en beïnvloedt de overload niet.
Voorbeelden:
class Example {
void print(int num) { // Signature: print(int)
System.out.println(num);
}
void print(String text) { // Signature: print(String)
System.out.println(text);
}
void print(int num, String text) { // Signature: print(int, String)
System.out.println(num + " " + text);
}
// Dit is geen overload, omdat de signature print(int) wordt herhaald
// int print(int num) {
// return num;
// }
}
Tabel die voorbeelden van overload illustreert:
| Methodenaam | Parametertypes | Zelfde / Verschillende methoden | Is het overload? | Reden |
|---|---|---|---|---|
calc |
(int, int) |
Verschillende | Ja | Verschillende signature (aantal en types parameters) |
calc |
(double, double) |
Verschillende | Ja | Verschillende signature (parametertypes) |
calc |
(int, int, int) |
Verschillende | Ja | Verschillende signature (aantal parameters) |
calc |
() |
Verschillende | Ja | Verschillende signature (aantal parameters) |
calc |
(int, int) |
Zelfde | Nee | Zelfde signature |
calculate |
(int, int) |
Verschillende | Nee | Andere methodenaam |