Privátne vlastnosti pri dedení v OOP v JavaScripte
Privátne vlastnosti nie sú dedené. Ale potomok s nimi môže manipulovať cez verejné metódy rodiča. Pozrime sa na to v praxi. Nech máme nasledujúcu triedu-rodiča s privátnou vlastnosťou a jej getterom a setterom:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Nech od rodiča dedí nasledujúci potomok:
class Student extends User {
}
Vytvorme objekt potomka:
let student = new Student;
Využime metódu rodiča, aby sme zapísali jeho privátnu vlastnosť:
student.setName('john');
Využime metódu rodiča, aby sme prečítali jeho privátnu vlastnosť:
let name = student.getName();
console.log(name);
Daná je nasledujúca trieda-rodič:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Vytvorte triedu Employee,
ktorá bude dediť
od tohto rodiča.
Vytvorte objekt triedy Employee
a zavolajte zdedené
settery a gettery.
V triede Employee urobte
nasledujúcu metódu:
getFull() {
return this.#name + ' ' + this.#surn;
}
Presvedčte sa, že kód metódy povedie k chybe.