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