Dziedziczenie klas JavaScript

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ć extendssł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 Studentklasa dziedziczy wszystkie metody i właściwości Personklasy. W związku z tym Studentklasa będzie miała teraz namewłaściwość i greet()metodę.

Następnie uzyskaliśmy dostęp do greet()metody Studentclass, tworząc student1obiekt.

Słowo kluczowe JavaScript super ()

Słowo superkluczowe 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 superinside Studentoznacza Personklasę. Stąd, gdy Studentwywoływany jest konstruktor klasy, wywołuje również konstruktora Personklasy, 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 occupationwłaściwość i greet()metoda są obecne w Personklasie nadrzędnej i Studentklasie podrzędnej . W związku z tym Studentklasa przesłania occupationwł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.

Interesujące artykuły...