Privátní vlastnosti při dědění v OOP v JavaScriptu
Privátní vlastnosti nejsou děděny. Ale potomek s nimi může manipulovat přes veřejné metody rodiče. Podívejme se na to v praxi. Předpokládejme, že máme následující nadřazenou třídu s privátní vlastností a jejím getterem a setterem:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Předpokládejme, že z rodiče dědí následující potomek:
class Student extends User {
}
Vytvořme objekt potomka:
let student = new Student;
Použijme metodu rodiče, abychom zapsali jeho privátní vlastnost:
student.setName('john');
Použijme metodu rodiče, abychom přečetli jeho privátní vlastnost:
let name = student.getName();
console.log(name);
Je dána následující nadřazená třída:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Vytvořte třídu Employee,
která bude dědit
od tohoto rodiče.
Vytvořte objekt třídy Employee
a zavolejte zděděné
settery a gettery.
V třídě Employee vytvořte
následující metodu:
getFull() {
return this.#name + ' ' + this.#surn;
}
Přesvědčte se, že kód metody povede k chybě.