Privatne metode pri nasleđivanju u OOP u JavaScriptu
Privatne metode se ne nasleđuju. To je urađeno namerno, kako se ne bi narušila enkapsulacija. Hajde da pogledamo na primeru. Neka imamo sledeći roditeljski klas sa privatnom metodom:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Neka od roditeljskog klasa nasleđuje sledeći klas:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Neka potomak želi da iskoristi privatnu metodu roditelja. JavaScript to neće dozvoliti i prikazaće grešku:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // biće greška
}
}
Pokušajte u klasi Employee
da iskoristite privatnu metodu
roditelja.