Частни методи при наследяване в ООП в 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
да използвате частния метод
на родителя.