Konstruktorius paveldėjime OOP JavaScripte
Paveldėjimo metu galima perrašyti tėvo konstruktorių. Pažiūrėkime pavyzdžiu. Tarkime, kad turime tokį tėvo klasę:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Tarkime, kad iš tėvinės klasės paveldi ši klasė:
class Student extends User {
}
Tarkime, kad norime palikuonio klasėje išplėsti konstruktorių, pridėdami jame papildomus parametrus:
class Student extends User {
constructor(name, surn, year) {
}
}
Šiuo atveju mes privalome
pirmoje eilutėje iškviesti tėvo
konstruktorių per super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Komanda super iš esmės yra
tėvo konstruktorius. Todėl
perduokime į jį reikiamus parametrus:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Dabar palikuonyje mokslo metus įrašykime į savo palikuonio savybę:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Padarykime getterį mokslo metams:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Tarkime, kad klasė Employee paveldi
iš klasės User iš šios
pamokos.
Perrašykite klasėje Employee
tėvo konstruktorių, pridėdami į jį
parametrą su amžiumi ir atlyginimu.
Padarykite getterius amžiui ir atlyginimui.