Dedičnosť triedy JavaScript

V tomto tutoriále sa pomocou príkladov dozviete o dedičnosti triedy JavaScript.

Dedenie triedy

Dedenie vám umožňuje definovať triedu, ktorá preberá všetky funkcie z nadradenej triedy a umožňuje vám pridať ďalšie.

Pomocou dedenia triedy môže trieda zdediť všetky metódy a vlastnosti inej triedy.

Dedičnosť je užitočná funkcia, ktorá umožňuje opätovné použitie kódu.

Ak chcete použiť dedičstvo triedy, použijete extendskľúčové slovo. Naprí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ýkon

 Ahoj Jack

Vo vyššie uvedenom príklade Studenttrieda zdedí všetky metódy a vlastnosti Persontriedy. Preto Studentteraz bude mať trieda namevlastnosť a greet()metódu.

Potom sme sa dostali k greet()metóde Studenttriedy vytvorením student1objektu.

Kľúčové slovo JavaScript super ()

superKľúčové slovo používa vnútri triedy podriadenej označuje svoju rodičovskú triedu. Naprí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();

Tu supervo vnútri Studenttriedy sa odkazuje na Persontriedu. Preto keď Studentsa volá konštruktor triedy, volá aj konštruktor Persontriedy, ktorý mu priradí vlastnosť name.

Prvoradá metóda alebo vlastnosť

Ak má podradená trieda rovnaký spôsob alebo názov vlastnosti ako nadradená trieda, použije metódu a vlastnosť podradenej triedy. Tento koncept sa nazýva prepísanie metódy. Naprí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ýkon

Ahoj študent Jack. zamestnanie: študent

Tu sú occupationvlastnosť a greet()metóda prítomné v nadradenej Persontriede a podradenej Studenttriede. Preto Studenttrieda prepíše occupationvlastnosť a greet()metódu.

Využitie dedičstva

  • Pretože podradená trieda môže zdediť všetky funkcie nadradenej triedy, umožňuje to opätovné použitie kódu.
  • Hneď ako je funkcionalita vyvinutá, môžete ju jednoducho dediť. Nie je potrebné znovu objavovať koleso. To umožňuje čistejší kód a ľahšiu údržbu.
  • Pretože do podradenej triedy môžete pridať aj svoje vlastné funkcie, môžete dediť iba užitočné funkcie a definovať ďalšie požadované funkcie.

Zaujímavé články...