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ę:

javascriptclass 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ė:

javascriptclass Student extends User {
  
}

Tarkime, kad norime palikuonio klasėje išplėsti konstruktorių, pridėdami jame papildomus parametrus:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    
  }
}

Šiuo atveju mes privalome pirmoje eilutėje iškviesti tėvo konstruktorių per super:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super();
  }
}

Komanda super iš esmės yra tėvo konstruktorius. Todėl perduokime į jį reikiamus parametrus:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
  }
}

Dabar palikuonyje mokslo metus įrašykime į savo palikuonio savybę:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
    this.year = year;
  }
}

Padarykime getterį mokslo metams:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
    this.year = year;
  }
  
  getYear() {
    return this.year;
  }
}
Задание 1

Tarkime, kad klasė Employee paveldi iš klasės User iš šios pamokos.

Задание 2

Perrašykite klasėje Employee tėvo konstruktorių, pridėdami į jį parametrą su amžiumi ir atlyginimu.

Задание 3

Padarykite getterius amžiui ir atlyginimui.