Konštruktor pri dedení v OOP v JavaScripte

Pri dedení je možné predefinovať konštruktor rodiča. Pozrime sa na príklad. Predpokladajme, že máme nasledujúcu rodičovskú triedu:

javascriptclass User {
  constructor(name, surn) {
    this.name = name;
    this.surn = surn;
  }
  
  getName() {
    return this.name;
  }
  getSurn() {
    return this.surn;
  }
}

Predpokladajme, že z rodičovskej triedy dedí nasledujúca trieda:

javascriptclass Student extends User {
  
}

Predpokladajme, že chceme v potomkovej triede rozšíriť konštruktor pridaním ďalších parametrov:

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

V tomto prípade musíme v prvom riadku zavolať konštruktor rodiča pomocou super:

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

Príkaz super je v podstate konštruktorom rodiča. Preto do neho odovzdajme požadované parametre:

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

Teraz v potomkovi zapíšme rok štúdia do vlastnej vlastnosti potomka:

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

Vytvorme getter pre rok štúdia:

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

Nech trieda Employee dedí od triedy User z tejto lekcie.

Задание 2

Predefinujte v triede Employee konštruktor rodiča pridaním parametra s vekom a platom.

Задание 3

Vytvorte gettery pre vek a plat.