„JavaScript“ klasės paveldėjimas

Šioje pamokoje su pavyzdžių pagalba sužinosite apie „JavaScript“ klasės paveldėjimą.

Klasės paveldėjimas

Paveldėjimas leidžia apibrėžti klasę, kuri perima visas funkcijas iš tėvų klasės ir leidžia pridėti daugiau.

Naudojant klasės paveldėjimą, klasė gali paveldėti visus kitos klasės metodus ir savybes.

Paveldėjimas yra naudinga funkcija, leidžianti pakartotinai naudoti kodą.

Norėdami naudoti klasės paveldėjimą, naudokite extendsraktinį žodį. Pavyzdžiui,

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

Rezultatas

 Sveikas Džekas

Ankstesniame pavyzdyje Studentklasė paveldi visus klasės metodus ir savybes Person. Taigi Studentklasė dabar turės namesavybę ir greet()metodą.

Tada mes pasiekėme klasės greet()metodą, Studentsukurdami student1objektą.

„JavaScript super“) raktinis žodis

superNaudojamas viduje vaiko klasės raktažodis žymi savo tėvų klasės. Pavyzdžiui,

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

Čia supervidinė Studentklasė reiškia Personklasę. Taigi, kai Studentiškviečiamas klasės konstruktorius , jis taip pat vadina Personklasės konstruktorių, kuris jam priskiria vardo ypatybę.

Svarbiausias metodas ar nuosavybė

Jei vaikų klasėje yra tas pats metodas ar nuosavybės pavadinimas, kaip ir tėvų klasėje, ji naudos vaikų klasės metodą ir ypatybę. Ši sąvoka vadinama svarbesniu metodu. Pavyzdžiui,

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

Rezultatas

Sveikas studentas Džekas. užsiėmimas: studentas

Čia occupationsavybė ir greet()metodas yra tėvų Personklasėje ir vaikų Studentklasėje. Taigi Studentklasė nepaiso ypatybės occupationir greet()metodo.

Paveldėjimo panaudojimas

  • Kadangi vaikų klasė gali paveldėti visas tėvų klasės funkcijas, tai leidžia pakartotinai naudoti kodą.
  • Sukūrus funkcionalumą, galite jį tiesiog paveldėti. Nereikia iš naujo išradinėti dviračio. Tai leidžia švaresnį kodą ir lengviau prižiūrėti.
  • Kadangi vaikų klasėje taip pat galite pridėti savo funkcijų, galite paveldėti tik naudingas funkcijas ir apibrėžti kitas reikalingas funkcijas.

Įdomios straipsniai...