Privačios savybės paveldėjime OOP JavaScripte
Privačios savybės nepaveldimos. Tačiau palikuonis gali jomis manipuliuoti per tėvinius viešuosius metodus. Pažiūrėkime tai praktiškai. Tarkime, turime šią tėvinę klasę su privacia savybe ir jos getter'iu ir setter'iu:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Tarkime, iš tėvo paveldi šis palikuonis:
class Student extends User {
}
Sukurkime palikuonio objektą:
let student = new Student;
Naudokimės tėvo metodu, kad įrašytume jo privatų savybę:
student.setName('john');
Naudokimės tėvo metodu, kad nuskaitytume jo privatų savybę:
let name = student.getName();
console.log(name);
Duota ši tėvinė klasė:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Sukurkite klasę Employee,
kuri paveldės
iš šio tėvo.
Sukurkite Employee klasės objektą
ir iškviškite paveldėtus
setter'ius ir getter'ius.
Employee klasėje sukurkite
šį metodą:
getFull() {
return this.#name + ' ' + this.#surn;
}
Įsitikinkite, kad metodo kodas sukels klaidą.