Частни свойства при наследяване в ООП в 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);
Задание 1

Даден е следния родителски клас:

javascriptclass User {
  #name;
  #surn;
  
  setName(name) {
    this.#name = name;
  }
  getName() {
    return this.#name;
  }
  
  setSurn(surn) {
    this.#surn = surn;
  }
  getSurn() {
    return this.#surn;
  }
}

Направете клас Employee, който ще наследи от този родител.

Задание 2

Създайте обект от клас Employee и извикайте наследените сетъри и гетъри.

Задание 3

В клас Employee направете следния метод:

javascriptgetFull() {
  return this.#name + ' ' + this.#surn;
}

Уверете се, че кодът на метода води до грешка.