Konstruktor pärimisel OOP-s JavaScriptis

Pärimisel on võimalik üle defineerida vanema konstruktorit. Vaatame seda näite abil. Olgu meil järgmine vanema klass:

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

Olgu vanemaklassist pärib järgmine klass:

javascriptclass Student extends User {
  
}

Oletame, et me tahame järglasklassis laiendada konstruktorit, lisades sellesse täiendavaid parameetreid:

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

Sellisel juhul peime tingimata esimesel real kutsuma välja vanema konstruktori läbi super:

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

Käsk super on olemuselt vanema konstruktor. Seetõttu edastame sellele nõutud parameetrid:

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

Nüüd kirjutame järglases õppeaasta järglase enda omadusse:

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

Teeme getteri õppeaasta jaoks:

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

Olgu klass Employee pärib klassist User sellest õppetükist.

Задание 2

Defineeri üle klassis Employee vanema konstruktor, lisades sellesse parameetri vanuse ja palgaga.

Задание 3

Tege getterid vanuse ja palga jaoks.