Propriétés privées lors de l'héritage en POO en JavaScript
Les propriétés privées ne sont pas héritées. Mais la classe enfant peut les manipuler via les méthodes publiques du parent. Voyons cela en pratique. Supposons que nous ayons la classe parente suivante avec une propriété privée et son accesseur (getter) et mutateur (setter) :
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Supposons que la classe suivante hérite du parent :
class Student extends User {
}
Créons un objet de la classe enfant :
let student = new Student;
Utilisons la méthode du parent pour définir sa propriété privée :
student.setName('john');
Utilisons la méthode du parent pour lire sa propriété privée :
let name = student.getName();
console.log(name);
Voici la classe parente suivante :
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Créez une classe Employee,
qui héritera
de ce parent.
Créez un objet de la classe Employee
et appelez les mutateurs et accesseurs
hérités.
Dans la classe Employee, créez
la méthode suivante :
getFull() {
return this.#name + ' ' + this.#surn;
}
Assurez-vous que le code de la méthode entraîne une erreur.