Junior
Τι πρέπει να διακρίνει δύο μεθόδους ώστε να μπορούμε να τις θεωρήσουμε υπερφόρτωση;
sobes.tech AI
Απάντηση από AI
Για να θεωρηθούν δύο μέθοδοι υπερφόρτωσης, πρέπει να πληρούν τις ακόλουθες προϋποθέσεις:
- Το ίδιο όνομα μεθόδου. Το όνομα των μεθόδων πρέπει να είναι ίδιο.
- Διαφορετική υπογραφή μεθόδου. Η υπογραφή της μεθόδου περιλαμβάνει το όνομα της μεθόδου και τη λίστα των τύπων παραμέτρων (αριθμός, σειρά και τύποι). Ο τύπος επιστροφής της μεθόδου δεν αποτελεί μέρος της υπογραφής και δεν επηρεάζει την υπερφόρτωση.
Παραδείγματα:
class Example {
void print(int num) { // Υπογραφή: print(int)
System.out.println(num);
}
void print(String text) { // Υπογραφή: print(String)
System.out.println(text);
}
void print(int num, String text) { // Υπογραφή: print(int, String)
System.out.println(num + " " + text);
}
// Αυτό δεν είναι υπερφόρτωση, επειδή η υπογραφή print(int) επαναλαμβάνεται
// int print(int num) {
// return num;
// }
}
Πίνακας που απεικονίζει παραδείγματα υπερφόρτωσης:
| Όνομα μεθόδου | Τύποι παραμέτρων | Ίδιοι / διαφορετικοί μέθοδοι | Είναι υπερφόρτωση; | Αιτία |
|---|---|---|---|---|
calc |
(int, int) |
Διαφορετικοί | Ναι | Διαφορετική υπογραφή (αριθμός και τύποι παραμέτρων) |
calc |
(double, double) |
Διαφορετικοί | Ναι | Διαφορετική υπογραφή (τύποι παραμέτρων) |
calc |
(int, int, int) |
Διαφορετικοί | Ναι | Διαφορετική υπογραφή (αριθμός παραμέτρων) |
calc |
() |
Διαφορετικοί | Ναι | Διαφορετική υπογραφή (αριθμός παραμέτρων) |
calc |
(int, int) |
Ίδιοι | Όχι | Ίδια υπογραφή |
calculate |
(int, int) |
Διαφορετικοί | Όχι | Διαφορετικό όνομα μεθόδου |