Privata egenskaper vid arv i OOP i JavaScript
Privata egenskaper ärvs inte. Men ett barn kan manipulera dem genom förälderns publika metoder. Låt oss titta på det i praktiken. Låt oss säga att vi har följande förälderklass med en privat egenskap och dess getter och setter:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Låt följande barnklass ärva från föräldern:
class Student extends User {
}
Låt oss skapa ett objekt av barnklassen:
let student = new Student;
Låt oss använda förälderns metod för att sätta dess privata egenskap:
student.setName('john');
Låt oss använda förälderns metod för att läsa dess privata egenskap:
let name = student.getName();
console.log(name);
Följande förälderklass är given:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Skapa klassen Employee
som kommer att ärva
från denna förälder.
Skapa ett objekt av klassen Employee
och anropa de ärvda
setterna och getterna.
Gör följande metod i klassen Employee:
getFull() {
return this.#name + ' ' + this.#surn;
}
Övertyga dig om att metodens kod leder till ett fel.