Konstruktor vid arv i OOP i JavaScript

Vid arv kan man åsidosätta förälderns konstruktor. Låt oss titta på ett exempel. Låt oss säga att vi har följande förälderklass:

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

Låt följande klass ärva från förälderklassen:

javascriptclass Student extends User {
  
}

Låt oss säga att vi i barnklassen vill utöka konstruktorn genom att lägga till ytterligare parametrar:

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

I det här fallet måste vi på den första raden anropa förälderns konstruktor via super:

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

Kommandot super är i princip förälderns konstruktor. Låt oss därför skicka de nödvändiga parametrarna till den:

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

Nu i barnet kan vi skriva in studieåret i barnets egen egenskap:

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

Låt oss skapa en getter för studieåret:

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

Låt klassen Employee ärva från klassen User från denna lektion.

Задание 2

Åsidosätt i klassen Employee förälderns konstruktor genom att lägga till parametrar för ålder och lön.

Задание 3

Skapa getters för ålder och lön.