Приватные методы при наследовании в ООП в JavaScript

Приватные методы не наследуются. Это сделано специально, чтобы не нарушать инкапсуляцию. Давайте посмотрим на примере. Пусть у нас есть следующий родительский класс с приватным методом:

javascriptclass User {
  setName(name) {
    this.name = name;
  }
  getName() {
    return this.#capeFirst(this.name);
  }
  
  #capeFirst(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

Пусть от родительского класса наследует следующий класс:

javascriptclass Student extends User {
  setSurn(surn) {
    this.surn = surn;
  }
  getSurn() {
    return this.surn;
  }
}

Пусть потомок хочет воспользоваться приватным методом родителя. JavaScript это не разрешит и выдаст ошибку:

javascriptclass Student extends User {
  setSurn(surn) {
    this.surn = surn;
  }
  getSurn() {
    return this.#capeFirst(this.surn); // будет ошибка
  }
}
Задание 1

Попробуйте в классе Employee воспользоваться приватным методом родителя.