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:
javascriptclass 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ă:
javascriptclass Student extends User {
}
Să presupunem că vrem în clasa-descendent să extindem constructorul, adăugând în el parametri suplimentari:
javascriptclass Student extends User {
constructor(name, surn, year) {
}
}
În acest caz trebuie neapărat
prima linie să apelăm constructorul
părintelui prin super:
javascriptclass Student extends User {
constructor(name, surn, year) {
super();
}
}
Comanda super în esență este
constructorul părintelui. Prin urmare
să transmitem în el parametrii necesari:
javascriptclass Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Acum în descendent anul de studiu îl vom scrie în propria proprietate a descendentului:
javascriptclass Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Să facem un getter pentru anul de studiu:
javascriptclass 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.