Privátní metody při dědění v OOP v JavaScriptu
Privátní metody nejsou děděny. To je uděláno záměrně, aby nebylo narušeno zapouzdření. Podívejme se na příklad. Předpokládejme, že máme následující rodičovskou třídu s privátní metodou:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Předpokládejme, že z rodičovské třídy dědí následující třída:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Předpokládejme, že potomek chce použít privátní metodu rodiče. JavaScript to nedovolí a vypíše chybu:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // bude chyba
}
}
Zkuste ve třídě Employee
použít privátní metodu
rodiče.