Sobes.tech
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) Διαφορετικοί Όχι Διαφορετικό όνομα μεθόδου