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

Проверете дали кодот на методот ќе резултира со грешка.