Junior
Kuo turi skirtis du metodai, kad galėtume juos laikyti perkrautais?
sobes.tech AI
Atsakymas iš AI
Kad du metodai būtų laikomi perkraunamais, jie turi atitikti šias sąlygas:
- Tas pats metodo pavadinimas. Metodo pavadinimas turi būti identiškas.
- Skirtinga metodo signatūra. Metodo signatūra apima metodo pavadinimą ir parametrų tipų sąrašą (jų kiekį, tvarką ir tipus). Metodo grąžinimo tipas ne yra signatūros dalis ir neturi įtakos perkrovimui.
Pavyzdžiai:
class Example {
void print(int num) { // Signatūra: print(int)
System.out.println(num);
}
void print(String text) { // Signatūra: print(String)
System.out.println(text);
}
void print(int num, String text) { // Signatūra: print(int, String)
System.out.println(num + " " + text);
}
// Tai nėra perkrovimas, nes signatūra print(int) kartojasi
// int print(int num) {
// return num;
// }
}
Lentelė, iliustruojanti perkrovimo pavyzdžius:
| Metodas pavadinimas | Parametrų tipai | Tie patys / skirtingi metodai | Ar tai perkrovimas? | Priežastis |
|---|---|---|---|---|
calc |
(int, int) |
Skirtingi | Taip | Skirtinga signatūra (kiekis ir tipai) |
calc |
(double, double) |
Skirtingi | Taip | Skirtinga signatūra (tipai) |
calc |
(int, int, int) |
Skirtingi | Taip | Skirtinga signatūra (kiekis) |
calc |
() |
Skirtingi | Taip | Skirtinga signatūra (kiekis) |
calc |
(int, int) |
Tie patys | Ne | Tie patys signatūra |
calculate |
(int, int) |
Skirtingi | Ne | Kito metodo pavadinimas |