Construtor na herança em OOP em JavaScript

Na herança, você pode sobrescrever o construtor da classe pai. Vamos ver com um exemplo. Suponha que temos a seguinte classe pai:

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

Suponha que a seguinte classe herda da classe pai:

javascriptclass Student extends User {
  
}

Suponha que queremos no construtor da classe filha estender o construtor, adicionando parâmetros adicionais a ele:

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

Neste caso, precisamos obrigatoriamente chamar o construtor da classe pai usando super na primeira linha:

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

O comando super é essencialmente o construtor da classe pai. Portanto, vamos passar os parâmetros necessários para ele:

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

Agora, na classe filha, vamos registrar o ano de estudo em sua própria propriedade:

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

Vamos criar um getter para o ano de estudo:

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

Suponha que a classe Employee herda da classe User desta lição.

Задание 2

Sobrescreva o construtor da classe pai em Employee, adicionando parâmetros de idade e salário.

Задание 3

Crie getters para a idade e para o salário.