Zasebne lastnosti pri dedovanju v OOP v JavaScript
Zasebne lastnosti se ne dedujejo. Toda potomec lahko manipulira z njimi prek javnih metod starša. Poglejmo si to v praksi. Recimo, da imamo naslednji razred-starš z zasebno lastnostjo in njenim getterjem in setterjem:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Recimo, da od starša deduje naslednji potomec:
class Student extends User {
}
Ustvarimo objekt potomca:
let student = new Student;
Uporabimo metodo starša, da zapišemo njegovo zasebno lastnost:
student.setName('john');
Uporabimo metodo starša, da preberemo njegovo zasebno lastnost:
let name = student.getName();
console.log(name);
Podan je naslednji razred-starš:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Naredite razred Employee,
ki bo dedoval
od tega starša.
Ustvarite objekt razreda Employee
in pokličite podedovane
setterje in getterje.
V razredu Employee naredite
naslednjo metodo:
getFull() {
return this.#name + ' ' + this.#surn;
}
Prepričajte se, da koda metode povzroči napako.