Privátne metódy pri dedení v OOP v JavaScripte
Privátne metódy nie sú dedené. Je to urobené zámerne, aby sa nenarušila zapuzdrenosť. Pozrime sa na príklade. Majme nasledujúcu rodičovskú triedu s privátnou metódou:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Nech z rodičovskej triedy dedí nasledujúca trieda:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Nech potomok chce použiť privátnu metódu rodiča. JavaScript to nedovolí a vypíše chybu:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // bude chyba
}
}
Skúste v triede Employee
použiť privátnu metódu
rodiča.