Proprietà private nell'ereditarietà in OOP in JavaScript
Le proprietà private non vengono ereditate. Ma la classe figlia può manipolarle tramite i metodi pubblici della classe genitore. Vediamo come funziona nella pratica. Supponiamo di avere la seguente classe genitore con una proprietà privata, il suo getter e setter:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Supponiamo che dalla classe genitore erediti la seguente classe figlia:
class Student extends User {
}
Creiamo un oggetto della classe figlia:
let student = new Student;
Utilizziamo il metodo della classe genitore per impostare la sua proprietà privata:
student.setName('john');
Utilizziamo il metodo della classe genitore per leggere la sua proprietà privata:
let name = student.getName();
console.log(name);
Data la seguente classe genitore:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Crea la classe Employee,
che erediterà
da questo genitore.
Crea un oggetto della classe Employee
e chiama i setter e getter
ereditati.
Nella classe Employee crea
il seguente metodo:
getFull() {
return this.#name + ' ' + this.#surn;
}
Verifica che il codice del metodo porti a un errore.