Dědičnost třídy JavaScript

V tomto kurzu se na příkladech dozvíte o dědičnosti tříd JavaScriptu.

Dědičnost třídy

Dědičnost umožňuje definovat třídu, která přebírá všechny funkce z nadřazené třídy a umožňuje přidat další.

Pomocí dědičnosti třídy může třída zdědit všechny metody a vlastnosti jiné třídy.

Dědičnost je užitečná funkce, která umožňuje opětovné použití kódu.

Chcete-li použít dědičnost třídy, použijete extendsklíčové slovo. Například,

 // 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();

Výstup

 Ahoj Jacku

Ve výše uvedeném příkladu Studenttřída zdědí všechny metody a vlastnosti Persontřídy. Proto Studenttřída bude mít nyní namevlastnost a greet()metodu.

Poté jsme přistoupili k greet()metodě Studenttřídy vytvořením student1objektu.

Klíčové slovo JavaScript super ()

superKlíčové slovo používá uvnitř třídy podřízené označuje svou rodičovskou třídu. Například,

 // 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();

Zde supervnitřní Studenttřída odkazuje na Persontřídu. Když se tedy Studentvolá konstruktor Persontřídy, volá také konstruktor třídy, který mu přiřadí vlastnost name.

Přepisující metoda nebo vlastnost

Pokud má podřízená třída stejný název metody nebo vlastnosti jako nadřazená třída, použije metodu a vlastnost podřízené třídy. Tento koncept se nazývá přepsání metody. Například,

 // 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();

Výstup

Ahoj studente Jacku. povolání: student

Zde jsou occupationvlastnost a greet()metoda přítomny v nadřazené Persontřídě a podřízené Studenttřídě. Z tohoto důvodu je Studenttřída přepíše occupationvlastnost a greet()metodu.

Použití dědičnosti

  • Protože podřízená třída může zdědit všechny funkce třídy rodiče, umožňuje to opětovné použití kódu.
  • Jakmile je funkce vyvinuta, můžete ji jednoduše zdědit. Není třeba znovu objevovat kolo. To umožňuje čistší kód a snadnější údržbu.
  • Protože do podřízené třídy můžete také přidat své vlastní funkce, můžete zdědit pouze užitečné funkce a definovat další požadované funkce.

Zajímavé články...