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 βοηθά στη διαχείριση της κληρονομικότητας και στην επανάχρηση του κώδικα της βασικής κλάσης.