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) :
javascriptclass User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Supposons que la classe suivante hérite du parent :
javascriptclass Student extends User {
}
Créons un objet de la classe enfant :
javascriptlet student = new Student;
Utilisons la méthode du parent pour définir sa propriété privée :
javascriptstudent.setName('john');
Utilisons la méthode du parent pour lire sa propriété privée :
javascriptlet name = student.getName();
console.log(name);
Voici la classe parente suivante :
javascriptclass 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 :
javascriptgetFull() {
return this.#name + ' ' + this.#surn;
}
Assurez-vous que le code de la méthode entraîne une erreur.