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ę:

  1. 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.
  2. 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.

Scroll to Top