Surcharge des méthodes parentes en POO en JavaScript

Une classe enfant peut surcharger une méthode du parent en créant une méthode du même nom. Regardons un exemple. Supposons que nous ayons la classe parente suivante :

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

Créons une méthode du même nom dans la classe enfant :

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

En règle générale, la surcharge des méthodes parentes est nécessaire pour modifier ou compléter le comportement de cette méthode. Dans notre cas, ajoutons une vérification de la longueur du nom :

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

Assurons-nous que c'est bien la méthode surchargée qui est appelée. Commençons par créer un objet de la classe enfant :

javascriptlet student = new Student;

Maintenant, appelons notre méthode, en lui passant une valeur correcte :

javascriptstudent.setName('john');

Et maintenant, appelons la méthode en passant une valeur incorrecte. En conséquence, nous verrons dans la console l'erreur levée :

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

Dans la classe User, créez un getter et un setter pour l'âge.

Задание 2

Dans la classe Employee, surchargez le setter de l'âge et ajoutez-y une vérification que l'âge est compris entre 18 et 65 ans.