Privát metódusok öröklődéskor az OOP-ben JavaScriptben
A privát metódusok nem öröklődnek. Ez szándékosan van így kialakítva, hogy ne sérüljön az encapsuláció. Nézzünk egy példát. Tegyük fel, hogy a következő szülő osztályunk van privát metódussal:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Tegyük fel, hogy a szülő osztályból örököl a következő osztály:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Tegyük fel, hogy az utód szeretné használni a szülő privát metódusát. A JavaScript ezt nem engedélyezi és hibát jelez:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // hiba történik
}
}
Próbálja ki az Employee osztályban
használni a szülő privát metódusát.