Sobes.tech
Junior — Middle

Ποιος είναι ο ρόλος του τελεστή super στο πλαίσιο της κληρονομικότητας και της κλήσης μεθόδων ή κατασκευαστών της βασικής κλάσης;

sobes.tech AI

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

Ο τελεστής super στη Java χρησιμοποιείται για την πρόσβαση σε μεθόδους ή κατασκευαστές της βασικής (γονικής) κλάσης από μια υποκλάση.

Οι κύριες χρήσεις του super:

  • Κλήση του κατασκευαστή της βασικής κλάσης από τον κατασκευαστή της υποκλάσης, ώστε να αρχικοποιηθεί το μέρος του αντικειμένου που ορίζεται στη γονική κλάση.
  • Κλήση μιας υπερκαλυμμένης μεθόδου της βασικής κλάσης, αν στην υποκλάση χρειάζεται να συμπληρώσει ή να αλλάξει τη συμπεριφορά, διατηρώντας μέρος της λογικής της γονικής κλάσης.

Παράδειγμα χρήσης του κατασκευαστή:

class Animal {
    String name;
    Animal(String name) {
        this.name = name;
    }
}

class Dog extends Animal {
    Dog(String name) {
        super(name); // κλήση του κατασκευαστή της Animal
    }
}

Παράδειγμα κλήσης μεθόδου της βασικής κλάσης:

class Animal {
    void sound() {
        System.out.println("Κάποιος ήχος");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        super.sound(); // κλήση της μεθόδου της βασικής κλάσης
        System.out.println("Γαύγισμα");
    }
}

Έτσι, το super βοηθά στη διαχείριση της κληρονομικότητας και στην επανάχρηση του κώδικα της βασικής κλάσης.