Senior
Opowiedz o funkcji super() i kiedy jej używasz?
sobes.tech AI
Odpowiedź od AI
Funkcja super() jest używana w klasach do wywoływania konstruktora klasy nadrzędnej lub metod nadrzędnych.
Stosuje się ją w dwóch głównych przypadkach:
-
W konstruktorze klasy potomnej, aby wywołać konstruktor klasy bazowej i poprawnie zainicjalizować dziedziczone właściwości.
-
Do wywoływania metod rodzica, jeśli trzeba rozszerzyć lub nadpisać zachowanie, zachowując część logiki klasy bazowej.
Przykład:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} wydaje dźwięk.`);
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name); // wywołanie konstruktora Animal
this.breed = breed;
}
speak() {
super.speak(); // wywołanie metody speak z Animal
console.log(`${this.name} szczeka.`);
}
}
Bez wywołania super() w konstruktorze klasy potomnej, wystąpi błąd, ponieważ klasa bazowa nie jest zainicjalizowana.