Konstruktor ved arv i OOP i JavaScript

Ved arv kan man overskrive forælderens konstruktor. Lad os se på et eksempel. Lad os sige, at vi har følgende forældreklasse:

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

Lad den følgende klasse arve fra forældreklassen:

javascriptclass Student extends User {
  
}

Lad os sige, at vi i barnklassen vil udvide konstruktøren ved at tilføje yderligere parametre til den:

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

I dette tilfælde er vi obligatorisk nødt til at kalde forælderens konstruktor via super på første linje:

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

Kommandoen super er i bund og grund forælderens konstruktor. Derfor lad os videregive de nødvendige parametre til den:

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

Nu i barnet skal studieåret skrives i barnets egen egenskab:

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

Lad os lave en getter for studieåret:

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

Lad klassen Employee arve fra klassen User fra denne lektion.

Задание 2

Overskriv i klassen Employee forælderens konstruktor ved at tilføje en parameter med alder og løn.

Задание 3

Lav gettere for alder og lon.