Senior
Μίλησε για τη λειτουργία super() και πότε τη χρησιμοποιείς;
sobes.tech AI
Απάντηση από AI
Η λειτουργία super() χρησιμοποιείται στις κλάσεις για να καλέσει τον κατασκευαστή της γονικής κλάσης ή τις μεθόδους του γονέα.
Εφαρμόζεται σε δύο κύριες περιπτώσεις:
-
Στον κατασκευαστή μιας υποκλάσης για να καλέσει τον κατασκευαστή της βασικής κλάσης και να διασφαλίσει σωστή αρχικοποίηση των κληρονομημένων ιδιοτήτων.
-
Για να καλέσει τις μεθόδους του γονέα, αν χρειάζεται να επεκτείνει ή να υπερασπιστεί τη συμπεριφορά, διατηρώντας μέρος της λογικής της βασικής κλάσης.
Παράδειγμα:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} κάνει έναν ήχο.`);
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name); // κλήση του κατασκευαστή του Animal
this.breed = breed;
}
speak() {
super.speak(); // κλήση της μεθόδου speak από το Animal
console.log(`${this.name} γαβγίζει.`);
}
}
Χωρίς την κλήση super() στον κατασκευαστή της υποκλάσης, θα προκύψει σφάλμα, καθώς η βασική κλάση δεν έχει αρχικοποιηθεί.