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;
  }
}
Задание 1

Să presupunem că clasa Employee moștenește din clasa User din această lecție.

Задание 2

Suprascrieți în clasa Employee constructorul părintelui, adăugând în el parametru cu vârsta și salariul.

Задание 3

Faceți getteri pentru vârstă și salariu.