Sobes.tech
Junior

Τι μπορεί να αλλάξει κατά την υπερφόρτωση μεθόδων στον προγραμματισμό;

sobes.tech AI

Απάντηση από AI

Κατά την υπερφόρτωση μεθόδων (method overloading), μπορείτε να αλλάξετε:

  • Αριθμό παραμέτρων: Οι μέθοδοι με το ίδιο όνομα μπορούν να έχουν διαφορετικό αριθμό τυπικών παραμέτρων.
  • Τύπους παραμέτρων: Οι μέθοδοι με το ίδιο όνομα και τον ίδιο αριθμό παραμέτρων μπορούν να διαφέρουν στους τύπους αυτών.
  • Σειρά των τύπων παραμέτρων: Αν οι μέθοδοι έχουν τον ίδιο αριθμό παραμέτρων και τους ίδιους τύπους, αλλά διαφέρουν στη σειρά, αυτό επίσης θεωρείται υπερφόρτωση.

Παράδειγμα σε Java:

// Κλάση με υπερφορτωμένες μεθόδους
class Calculator {

    // Μέθοδος πρόσθεσης δύο ακέραιων
    public int add(int a, int b) {
        return a + b;
    }

    // Υπερφορτωμένη μέθοδος: πρόσθεση τριών ακέραιων
    public int add(int a, int b, int c) {
        return a + b + c;
    }

    // Υπερφορτωμένη μέθοδος: πρόσθεση δύο δεκαδικών
    public double add(double a, double b) {
        return a + b;
    }

    // Υπερφορτωμένη μέθοδος: πρόσθεση ακέραιου και δεκαδικού
    public double add(int a, double b) {
        return a + b;
    }

    // Υπερφορτωμένη μέθοδος: πρόσθεση δεκαδικού και ακέραιου
    public double add(double a, int b) {
        return a + b;
    }
}

Τι δεν μπορεί να αλλάξει κατά την υπερφόρτωση:

  • Τύπος επιστροφής: Δύο μέθοδοι με το ίδιο όνομα και την ίδια υπογραφή (αριθμό, τύπους και σειρά παραμέτρων) δεν μπορούν να διαφέρουν μόνο στον τύπο επιστροφής.
  • Τροποποιητές πρόσβασης: Οι τροποποιητές πρόσβασης (public, private, protected, default) δεν επηρεάζουν την υπερφόρτωση.
  • Παρουσία ή απουσία του static: Δεν μπορεί να υπερφορτωθεί μια στατική μέθοδος με μια μη στατική ή το αντίστροφο.
  • Λίστα εξαιρέσεων: Η λίστα εξαιρέσεων δεν αποτελεί μέρος της υπογραφής της μεθόδου και δεν λαμβάνεται υπόψη στην υπερφόρτωση.

Σύγκριση υπερφόρτωσης και υπερκαλύψεως μεθόδων:

Χαρακτηριστικό Υπερφόρτωση (Overloading) Υπερκαλύψη (Overriding)
Πού συμβαίνει Σε μια κλάση ή σε μια ιεραρχία κλάσεων Στην υποκλάση
Όνομα μεθόδου Το ίδιο Το ίδιο
Υπογραφή μεθόδου Διαφορετική (αριθμός, τύποι, σειρά παραμέτρων) Ίδια
Τύπος επιστροφής Μπορεί να διαφέρει (αλλά όχι ως μοναδική διαφορά) Πρέπει να είναι ίδιος ή συμβατικός (για αντικείμενα)
Σκοπός Παροχή διαφορετικών επιλογών για διαφορετικούς τύπους δεδομένων ή αριθμό ορισμάτων Αλλαγή συμπεριφοράς κληρονομημένης μεθόδου στην υποκλάση
Σχέση μεταξύ μεθόδων Ανεξάρτητες μέθοδοι Σχέση "είναι" (κληρονομία)
Πολυμορφισμός Πολυμορφισμός κατά τη φάση μεταγλώττισης (στατικός) Πολυμορφισμός κατά την εκτέλεση (δυναμικός)