Méthodes privées et héritage en POO en JavaScript
Les méthodes privées ne sont pas héritées. Cela est fait intentionnellement pour ne pas violer l'encapsulation. Regardons un exemple. Supposons que nous ayons la classe parente suivante avec une méthode privée :
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Supposons que la classe suivante hérite de la classe parente :
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Supposons que la classe enfant veuille utiliser la méthode privée du parent. JavaScript ne le permettra pas et générera une erreur :
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // entraînera une erreur
}
}
Essayez dans la classe Employee
d'utiliser la méthode privée
du parent.