Приватные свойства при наследовании в ООП в JavaScript
Приватные свойства не наследуются. Но потомок может манипулировать ими через публичные методы родителя. Давайте посмотрим на практике. Пусть у нас есть следующий класс-родитель с приватным свойством и его геттером и сеттом:
javascriptclass User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
Пусть от родителя наследует следующий потомок:
javascriptclass Student extends User {
}
Создадим объект потомка:
javascriptlet student = new Student;
Воспользуемся методом родителя, чтобы записать его приватное свойство:
javascriptstudent.setName('john');
Воспользуемся методом родителя, чтобы прочитать его приватное свойство:
javascriptlet name = student.getName();
console.log(name);
Дан следующий класс-родитель:
javascriptclass User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
Сделайте класс Employee,
который будет наследовать
от этого родителя.
Создайте объект класса Employee
и вызовите унаследованные
сеттеры и геттеры.
В классе Employee сделайте
следующий метод:
javascriptgetFull() {
return this.#name + ' ' + this.#surn;
}
Убедитесь, что код метода приведет к ошибке.