Propiedades privadas en la herencia de POO en JavaScript
Las propiedades privadas no se heredan. Pero el descendiente puede manipularlas a través de los métodos públicos del padre. Veámoslo en la práctica. Supongamos que tenemos la siguiente clase padre con una propiedad privada y su getter y setter:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Supongamos que de la clase padre hereda la siguiente clase hija:
class Student extends User {
}
Creemos un objeto de la clase hija:
let student = new Student;
Utilicemos el método del padre para asignar su propiedad privada:
student.setName('john');
Utilicemos el método del padre para leer su propiedad privada:
let name = student.getName();
console.log(name);
Tenemos la siguiente clase padre:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Crea la clase Employee,
que herede de este padre.
Crea un objeto de la clase Employee
y llama a los setters y getters heredados.
En la clase Employee crea
el siguiente método:
getFull() {
return this.#name + ' ' + this.#surn;
}
Comprueba que el código del método genera un error.