Sobes.tech
Senior

Μίλησε για τη λειτουργία super() και πότε τη χρησιμοποιείς;

sobes.tech AI

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

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

Εφαρμόζεται σε δύο κύριες περιπτώσεις:

  1. Στον κατασκευαστή μιας υποκλάσης για να καλέσει τον κατασκευαστή της βασικής κλάσης και να διασφαλίσει σωστή αρχικοποίηση των κληρονομημένων ιδιοτήτων.

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

Παράδειγμα:

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