Junior
Mis peab kahe meetodi eristama, et saaksime neid ülekoormatuks pidada?
sobes.tech AI
Vastus AI-lt
Et kaks meetodit peetakse ülekoormatuks, kui nad vastavad järgmistele tingimustele:
- Sama meetodi nimi. Meetodite nimed peavad olema identsed.
- Erinev meetodi signatuur. Meetodi signatuur hõlmab meetodi nime ja parameetritüüpide nimekirja (nende arvu, järjekorra ja tüübi). Meetodi tagastustüüp ei kuulu signatuuri ja ei mõjuta ülekoormatust.
Näited:
class Example {
void print(int num) { // Signatuur: print(int)
System.out.println(num);
}
void print(String text) { // Signatuur: print(String)
System.out.println(text);
}
void print(int num, String text) { // Signatuur: print(int, String)
System.out.println(num + " " + text);
}
// See ei ole ülekoormus, kuna signatuur print(int) kordub
// int print(int num) {
// return num;
// }
}
Tabel, mis illustreerib ülekoormuse näiteid:
| Meetodi nimi | Parameetritüübid | Sama / erinevad meetodid | Kas see on ülekoormus? | Põhjus |
|---|---|---|---|---|
calc |
(int, int) |
Erinevad | Jah | Erinev signatuur (arv ja tüübid) |
calc |
(double, double) |
Erinevad | Jah | Erinev signatuur (parameetritüübid) |
calc |
(int, int, int) |
Erinevad | Jah | Erinev signatuur (arv) |
calc |
() |
Erinevad | Jah | Erinev signatuur (arv) |
calc |
(int, int) |
Sama | Ei | Sama signatuur |
calculate |
(int, int) |
Erinevad | Ei | Erinev meetodi nimi |