Metodi privati nell'ereditarietà in OOP in JavaScript
I metodi privati non vengono ereditati. Questo è fatto appositamente per non violare l'incapsulamento. Diamo un'occhiata a un esempio. Supponiamo di avere la seguente classe genitore con un metodo privato:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Supponiamo che dalla classe genitore erediti la seguente classe:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Se la classe figlia vuole utilizzare il metodo privato del genitore, JavaScript non lo permetterà e genererà un errore:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // darà errore
}
}
Provate nella classe Employee
a utilizzare il metodo privato
del genitore.