Métodos privados en la herencia de POO en JavaScript
Los métodos privados no se heredan. Esto se hace deliberadamente para no violar el encapsulamiento. Veamos un ejemplo. Supongamos que tenemos la siguiente clase padre con un método privado:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Supongamos que la siguiente clase hereda de la clase padre:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Supongamos que la clase hija quiere utilizar el método privado del padre. JavaScript no lo permitirá y arrojará un error:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // habrá un error
}
}
Intente en la clase Employee
utilizar el método privado
de la clase padre.