Metode private la moștenire în OOP în JavaScript
Metodele private nu sunt moștenite. Acest lucru este făcut în mod intenționat, pentru a nu încălca încapsularea. Să ne uităm la un exemplu. Să presupunem că avem următoarea clasă părinte cu o metodă privată:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Să presupunem că din clasa părinte moștenește următoarea clasă:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Să presupunem că clasa copil vrea să folosească metoda privată a părintelui. JavaScript nu va permite acest lucru și va arunca o eroare:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // va fi eroare
}
}
Încercați în clasa Employee
să folosiți metoda privată
a părintelui.