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 extends
kľúč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 Student
trieda zdedí všetky metódy a vlastnosti Person
triedy. Preto Student
teraz bude mať trieda name
vlastnosť a greet()
metódu.
Potom sme sa dostali k greet()
metóde Student
triedy vytvorením student1
objektu.
Kľúčové slovo JavaScript super ()
super
Kľúč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 super
vo vnútri Student
triedy sa odkazuje na Person
triedu. Preto keď Student
sa volá konštruktor triedy, volá aj konštruktor Person
triedy, 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ú occupation
vlastnosť a greet()
metóda prítomné v nadradenej Person
triede a podradenej Student
triede. Preto Student
trieda prepíše occupation
vlastnosť 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.