Dedovanje razreda JavaScript

V tej vadnici boste s pomočjo primerov spoznali dedovanje razreda JavaScript.

Razredno dedovanje

Dedovanje vam omogoča, da definirate razred, ki prevzame vse funkcije nadrejenega razreda in vam omogoča, da dodate več.

Z dedovanjem razreda lahko razred podeduje vse metode in lastnosti drugega razreda.

Dedovanje je koristna funkcija, ki omogoča ponovno uporabo kode.

Če želite uporabiti dedovanje razreda, uporabite extendsključno besedo. Na primer

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

Izhod

 Pozdravljen Jack

V zgornjem primeru Studentrazred podeduje vse metode in lastnosti Personrazreda. Tako bo Studentrazred zdaj imel namelastnost in greet()metodo.

Nato smo do greet()metode Studentrazreda dostopali z ustvarjanjem student1predmeta.

Ključna beseda JavaScript super ()

Ključna superbeseda, uporabljena znotraj podrejenega razreda, označuje nadrejeni razred. Na primer

 // 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 se supernotranji Studentrazred nanaša na Personrazred. Ko Studenttorej pokličete konstruktor razreda, pokliče tudi konstruktor Personrazreda, ki mu dodeli imensko lastnost.

Preglasitev metode ali lastnosti

Če ima podrejeni razred enako metodo ali ime lastnosti kot ime nadrejenega razreda, bo uporabil metodo in lastnost podrejenega razreda. Ta koncept se imenuje preglasitev metode. Na primer

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

Izhod

Pozdravljeni študent Jack. poklic: študent

Tu sta occupationlastnosti in greet()metoda prisotni v nadrejenem Personrazredu in podrejenem Studentrazredu. Zato Studentrazred preglasi occupationlastnost in greet()metodo.

Uporabe dedovanja

  • Ker lahko podrejeni razred podeduje vse funkcionalnosti nadrejenega razreda, to omogoča ponovno uporabo kode.
  • Ko je funkcionalnost razvita, jo lahko preprosto podedujete. Kola ni treba znova izumljati. To omogoča čistejšo kodo in lažje vzdrževanje.
  • Ker lahko v razred otroka dodate tudi lastne funkcije, lahko podedujete samo uporabne funkcionalnosti in določite druge zahtevane funkcije.

Zanimive Članki...