Приватные свойства при наследовании в ООП в 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; }

Убедитесь, что код метода приведет к ошибке.



Чат с GPT Компилятор