Constructor en la herencia de POO en JavaScript

En la herencia se pueden sobrescribir los constructores padre. Veamos un ejemplo. Supongamos que tenemos la siguiente clase padre:

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

Supongamos que de la clase padre hereda la siguiente clase:

javascriptclass Student extends User {
  
}

Supongamos que queremos en la clase hija ampliar el constructor, añadiéndole parámetros adicionales:

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

En este caso necesitamos obligatoriamente llamar en la primera línea al constructor padre mediante super:

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

El comando super en esencia es el constructor padre. Por lo tanto, pasémosle los parámetros requeridos:

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

Ahora en el hijo el año de estudio lo grabamos en su propia propiedad del hijo:

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

Hagamos un getter para el año de estudio:

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

Supongamos que la clase Employee hereda de la clase User de esta lección.

Задание 2

Sobrescriba en la clase Employee el constructor padre, añadiéndole parámetros de edad y salario.

Задание 3

Haga getters para la edad y el salario.