Constructor la moștenire în OOP în JavaScript
La moștenire se poate suprascrie constructorul părintelui. Să ne uităm la un exemplu. Să presupunem că avem următoarea clasă părinte:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Să presupunem că din clasa părinte moștenește următoarea clasă:
class Student extends User {
}
Să presupunem că vrem în clasa-descendent să extindem constructorul, adăugând în el parametri suplimentari:
class Student extends User {
constructor(name, surn, year) {
}
}
În acest caz trebuie neapărat
prima linie să apelăm constructorul
părintelui prin super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Comanda super în esență este
constructorul părintelui. Prin urmare
să transmitem în el parametrii necesari:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Acum în descendent anul de studiu îl vom scrie în propria proprietate a descendentului:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Să facem un getter pentru anul de studiu:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Să presupunem că clasa Employee moștenește
din clasa User din această
lecție.
Suprascrieți în clasa Employee
constructorul părintelui, adăugând în el
parametru cu vârsta și salariul.
Faceți getteri pentru vârstă și salariu.