Приватни методи при наследование во ООП во JavaScript
Приватните методи не се наследуваат. Ова е направено намерно, за да не се наруши енкапсулацијата. Ајде да погледнеме на пример. Нека имаме следнава родителска класа со приватен метод:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Нека од родителската класа наследува следнава класа:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Нека потомокот сака да го искористи приватниот метод на родителот. JavaScript нема да го дозволи ова и ќе даде грешка:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // ќе биде грешка
}
}
Обидете се во класата Employee
да го искористите приватниот метод
на родителот.