Š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 extends
raktinį ž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 Student
klasė paveldi visus klasės metodus ir savybes Person
. Taigi Student
klasė dabar turės name
savybę ir greet()
metodą.
Tada mes pasiekėme klasės greet()
metodą, Student
sukurdami student1
objektą.
„JavaScript super“) raktinis žodis
super
Naudojamas 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 super
vidinė Student
klasė reiškia Person
klasę. Taigi, kai Student
iškviečiamas klasės konstruktorius , jis taip pat vadina Person
klasė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 occupation
savybė ir greet()
metodas yra tėvų Person
klasėje ir vaikų Student
klasėje. Taigi Student
klasė nepaiso ypatybės occupation
ir 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.