Sobrescritura de métodos padre en POO en JavaScript

Una clase hija puede sobrescribir un método del padre, creando un método con el mismo nombre. Veamos un ejemplo. Supongamos que tenemos la siguiente clase padre:

javascriptclass User {
  setName(name) {
    this.name = name;
  }
  getName() {
    return this.name;
  }
}

Creemos un método homónimo en la clase hija:

javascriptclass Student extends User {
  setName(name) {
    
  }
}

Generalmente, la sobrescritura de métodos del padre es necesaria para cambiar o complementar el comportamiento de ese método. En nuestro caso, agreguemos una verificación de la longitud del nombre:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('student name error');
    }
  }
}

Asegurémonos de que se llama exactamente al método sobrescrito. Primero creemos un objeto de la clase hija:

javascriptlet student = new Student;

Ahora llamemos a nuestro método, pasándole un valor válido:

javascriptstudent.setName('john');

Y ahora llamemos al método, pasándole un valor no válido. Como resultado, veremos en la consola el error lanzado:

javascriptstudent.setName(''); // error
Задание 1

En la clase User haz un getter y un setter para la edad.

Задание 2

En la clase Employee sobrescribe el setter de la edad y haz en él una verificación de que la edad está entre 18 y 65 años.