Zasebne metode pri dedovanju v OOP v JavaScript
Zasebne metode se ne dedujejo. To je narejeno namerno, da ne bi prišlo do kršitve inkapsulacije. Poglejmo si na primeru. Recimo, da imamo naslednji nadrejeni razred z zasebno metodo:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Recimo, da od nadrejenega razreda deduje naslednji razred:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Recimo, da potomec želi uporabiti zasebno metodo starša. JavaScript tega ne bo dovolil in bo izpisal napako:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // bo napaka
}
}
Poskusite v razredu Employee
uporabiti zasebno metodo
starša.