W tym samouczku nauczysz się dziedziczenia klas JavaScript na przykładach.
Dziedziczenie klas
Dziedziczenie umożliwia zdefiniowanie klasy, która przejmuje wszystkie funkcje z klasy nadrzędnej i umożliwia dodawanie kolejnych.
Korzystając z dziedziczenia klas, klasa może dziedziczyć wszystkie metody i właściwości innej klasy.
Dziedziczenie to przydatna funkcja, która umożliwia ponowne wykorzystanie kodu.
Aby skorzystać z dziedziczenia klas, należy użyć extends
słowa kluczowego. Na przykład,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( ) let student1 = new Student('Jack'); student1.greet();
Wynik
Cześć Jack
W powyższym przykładzie Student
klasa dziedziczy wszystkie metody i właściwości Person
klasy. W związku z tym Student
klasa będzie miała teraz name
właściwość i greet()
metodę.
Następnie uzyskaliśmy dostęp do greet()
metody Student
class, tworząc student1
obiekt.
Słowo kluczowe JavaScript super ()
Słowo super
kluczowe użyte wewnątrz klasy podrzędnej oznacza jej klasę nadrzędną. Na przykład,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( console.log("Creating student class"); // call the super class constructor and pass in the name parameter super(name); ) ) let student1 = new Student('Jack'); student1.greet();
Tutaj klasa super
inside Student
oznacza Person
klasę. Stąd, gdy Student
wywoływany jest konstruktor klasy, wywołuje również konstruktora Person
klasy, który przypisuje mu właściwość name.
Zastępowanie metody lub właściwości
Jeśli klasa podrzędna ma taką samą nazwę metody lub właściwości jak klasa nadrzędna, użyje metody i właściwości klasy podrzędnej. Ta koncepcja nosi nazwę przesłaniania metody. Na przykład,
// parent class class Person ( constructor(name) ( this.name = name; this.occupation = "unemployed"; ) greet() ( console.log(`Hello $(this.name).`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( // call the super class constructor and pass in the name parameter super(name); // Overriding an occupation property this.occupation = 'Student'; ) // overriding Person's method greet() ( console.log(`Hello student $(this.name).`); console.log('occupation: ' + this.occupation); ) ) let p = new Student('Jack'); p.greet();
Wynik
Witaj studencie Jack. zawód: student
Tutaj occupation
właściwość i greet()
metoda są obecne w Person
klasie nadrzędnej i Student
klasie podrzędnej . W związku z tym Student
klasa przesłania occupation
właściwość i greet()
metodę.
Zastosowania dziedziczenia
- Ponieważ klasa potomna może dziedziczyć wszystkie funkcje klasy rodzica, umożliwia to ponowne wykorzystanie kodu.
- Po opracowaniu funkcji można ją po prostu odziedziczyć. Nie ma potrzeby odkrywania na nowo koła. Pozwala to na czystszy kod i łatwiejsze w utrzymaniu.
- Ponieważ możesz również dodawać własne funkcjonalności w klasie podrzędnej, możesz dziedziczyć tylko przydatne funkcje i definiować inne wymagane funkcje.