W programowaniu obiektowym, wywołanie nadrzędnego konstruktora w klasie potomnej jest kluczowym elementem dziedziczenia. W JavaScript, języku prototypowym, który również wspiera klasowy model dziedziczenia od ES6 (ECMAScript 2015), istnieje prosty sposób na realizację tego mechanizmu za pomocą słowa kluczowego super
. W tej lekcji przyjrzymy się, jak można wykorzystać super
do wywołania konstruktora klasy nadrzędnej z klasy potomnej.
Przykład użycia
Załóżmy, że mamy klasę Vehicle
, która jest naszą klasą bazową, i chcemy stworzyć klasę Car
, która dziedziczy z Vehicle
i rozszerza jej funkcjonalność. Użyjemy super
do wywołania konstruktora Vehicle
z konstruktora Car
.
Kod HTML i JavaScript w jednym pliku
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Wywołanie nadrzędnego konstruktora w JavaScript</title>
</head>
<body>
<script>
// Definicja klasy bazowej Vehicle
class Vehicle {
constructor(brand, model) {
this.brand = brand;
this.model = model;
}
displayInfo() {
console.log(`Pojazd: ${this.brand} ${this.model}`);
}
}
// Definicja klasy potomnej Car, dziedziczącej z Vehicle
class Car extends Vehicle {
constructor(brand, model, year) {
super(brand, model); // Wywołanie konstruktora klasy nadrzędnej
this.year = year;
}
displayInfo() {
// Rozszerzenie metody z klasy nadrzędnej
super.displayInfo(); // Wywołanie metody z klasy nadrzędnej
console.log(`Rok produkcji: ${this.year}`);
}
}
// Utworzenie instancji klasy Car
const myCar = new Car("Ford", "Mustang", 1969);
// Wyświetlenie informacji o sam
Znaczenie słowa kluczowego super
Słowo kluczowe super
w JavaScript pełni dwojaką rolę:
- Wywołanie konstruktora klasy nadrzędnej: Pozwala na inicjalizację klasy bazowej w konstruktorze klasy potomnej, co jest niezbędne do prawidłowego dziedziczenia właściwości.
- Wywołanie metod klasy nadrzędnej: Umożliwia odwołanie się do metod zdefiniowanych w klasie nadrzędnej, co pozwala na ich rozszerzenie lub modyfikację w klasie potomnej.
Podsumowanie
Wywołanie nadrzędnego konstruktora w JavaScript jest istotnym elementem efektywnego wykorzystania dziedziczenia w programowaniu obiektowym. Dzięki super
, programiści mogą łatwo korzystać z konstruktorów i metod klas bazowych, co ułatwia organizację kodu, jego ponowne wykorzystanie oraz rozwój aplikacji. Przykład pokazuje, jak w prosty sposób można zaimplementować dziedziczenie i wywołać metody klasy nadrzędnej, zachowując przy tym czytelność i strukturę kodu.
Jeżeli chcesz przyśpieszyć swoją naukę tworzenia stron chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego aspektów.