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 :
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Créons une méthode du même nom dans la classe enfant :
class 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 :
class 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 :
let student = new Student;
Maintenant, appelons notre méthode, en lui passant une valeur correcte :
student.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 :
student.setName(''); // erreur
Dans la classe User, créez
un getter et un setter pour l'âge.
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.