Junior
Co musi odróżniać dwie metody, abyśmy mogli je uznać za przeciążone?
sobes.tech AI
Odpowiedź od AI
Aby dwa metody były uznane za przeciążone, muszą spełniać następujące warunki:
- Taka sama nazwa metody. Nazwa metod musi być identyczna.
- Inna sygnatura metody. Sygnatura metody obejmuje nazwę metody i listę typów parametrów (ich ilość, kolejność i typy). Typ zwracany przez metodę nie jest częścią sygnatury i nie wpływa na przeciążenie.
Przykłady:
class Example {
void print(int num) { // Sygnatura: print(int)
System.out.println(num);
}
void print(String text) { // Sygnatura: print(String)
System.out.println(text);
}
void print(int num, String text) { // Sygnatura: print(int, String)
System.out.println(num + " " + text);
}
// To nie jest przeciążenie, ponieważ sygnatura print(int) się powtarza
// int print(int num) {
// return num;
// }
}
Tabela ilustrująca przykłady przeciążenia:
| Nazwa metody | Typy parametrów | Czy metody są takie same / różne | Czy jest przeciążeniem? | Powód |
|---|---|---|---|---|
calc |
(int, int) |
Różne | Tak | Różna sygnatura (ilość i typy parametrów) |
calc |
(double, double) |
Różne | Tak | Różna sygnatura (typy parametrów) |
calc |
(int, int, int) |
Różne | Tak | Różna sygnatura (ilość parametrów) |
calc |
() |
Różne | Tak | Różna sygnatura (ilość parametrów) |
calc |
(int, int) |
Tak | Nie | Taka sama sygnatura |
calculate |
(int, int) |
Różne | Nie | Inna nazwa metody |