Prywatne właściwości przy dziedziczeniu w OOP w JavaScript
Prywatne właściwości nie są dziedziczone. Ale potomek może manipulować nimi poprzez publiczne metody rodzica. Spójrzmy na to w praktyce. Załóżmy, że mamy następującą klasę-rodzica z prywatną właściwością oraz jej getterem i setterem:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Załóżmy, że od rodzica dziedziczy następujący potomek:
class Student extends User {
}
Stwórzmy obiekt potomka:
let student = new Student;
Skorzystajmy z metody rodzica, aby zapisać jego prywatną właściwość:
student.setName('john');
Skorzystajmy z metody rodzica, aby odczytać jego prywatną właściwość:
let name = student.getName();
console.log(name);
Dana jest następująca klasa-rodzic:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Stwórz klasę Employee,
która będzie dziedziczyć
od tego rodzica.
Utwórz obiekt klasy Employee
i wywołaj odziedziczone
settery i gettery.
W klasie Employee stwórz
następującą metodę:
getFull() {
return this.#name + ' ' + this.#surn;
}
Upewnij się, że kod metody prowadzi do błędu.