W JavaScript, dziedziczenie klas umożliwia tworzenie hierarchii obiektów, gdzie klasy potomne mogą dziedziczyć właściwości i metody od klas bazowych. Jest to potężne narzędzie, które umożliwia ponowne wykorzystanie kodu i organizację złożonych struktur klas. W tej lekcji zobaczymy, jak używać dziedziczenia do modelowania ciężarówek jako specjalnego rodzaju pojazdów.
Definiowanie klasy bazowej
Zacznijmy od zdefiniowania klasy bazowej Vehicle
, która będzie zawierać podstawowe cechy wspólne dla wszystkich pojazdów.
class Vehicle {
constructor(brand, model, year) {
this.brand = brand;
this.model = model;
this.year = year;
}
displayDetails() {
console.log(`Marka: ${this.brand},
Model: ${this.model}, Rok: ${this.year}`);
}
}
Rozszerzanie klasy bazowej
Teraz zdefiniujemy klasę Truck
, która dziedziczy z klasy Vehicle
i dodaje specyficzne dla siebie właściwości, takie jak maksymalne obciążenie (maxLoad
).
class Truck extends Vehicle {
constructor(brand, model, year, maxLoad) {
super(brand, model, year); // Wywołanie konstruktora klasy bazowej
this.maxLoad = maxLoad;
}
displayLoadCapacity() {
console.log(`Maksymalne obciążenie: ${this.maxLoad} kg`);
}
}
Tworzenie instancji klasy potomnej
Możemy teraz stworzyć instancję naszej klasy Truck
, która dziedziczy metody i właściwości z klasy Vehicle
oraz posiada dodatkowe cechy charakterystyczne dla ciężarówki.
let myTruck = new Truck("Volvo", "FH16", 2021, 25000);
myTruck.displayDetails(); // Marka: Volvo, Model: FH16, Rok: 2021
myTruck.displayLoadCapacity(); // Maksymalne obciążenie: 25000 kg
Podsumowanie
Dziedziczenie w JavaScript pozwala na tworzenie złożonych hierarchii obiektów z wykorzystaniem klas. Kluczową zaletą jest możliwość ponownego wykorzystania kodu oraz uporządkowanie struktury projektu. Przykład z ciężarówkami pokazuje, jak łatwo możemy rozszerzać klasy bazowe, dodając nowe właściwości i metody, co czyni nasz kod bardziej modułowym i łatwym do zarządzania. Dziedziczenie to fundament programowania obiektowego w JavaScript, umożliwiający efektywne modelowanie i implementację złożonych systemów.
Jeżeli chcesz przyśpieszyć swoją naukę chciałbym polecić mój kurs video JavaScript w którym nauczysz się tego języka od podstaw do zaawansowanych jego koncepcji.