Приватне методе при наслеђивању у ООП у 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
да искористите приватни метод
родитеља.