Proprietăți private la moștenire în OOP în JavaScript
Proprietățile private nu sunt moștenite. Dar descendentul le poate manipula prin metodele publice ale părintelui. Să vedem în practică. Să presupunem că avem următoarea clasă-părinte cu o proprietate privată și getterul și setterul acesteia:
javascriptclass User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Să presupunem că din părinte moștenește următorul descendent:
javascriptclass Student extends User {
}
Să creăm un obiect al descendentului:
javascriptlet student = new Student;
Să folosim metoda părintelui pentru a scrie în proprietatea sa privată:
javascriptstudent.setName('john');
Să folosim metoda părintelui pentru a citi proprietatea sa privată:
javascriptlet name = student.getName();
console.log(name);
Este dată următoarea clasă-părinte:
javascriptclass User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Creați clasa Employee,
care va moșteni
de la acest părinte.
Creați un obiect al clasei Employee
și apelați settere și gettere moștenite.
În clasa Employee faceți
următoarea metodă:
javascriptgetFull() {
return this.#name + ' ' + this.#surn;
}
Asigurați-vă că codul metodei va duce la o eroare.