Prywatne metody przy dziedziczeniu w OOP w JavaScript

Prywatne metody nie są dziedziczone. Jest to celowo zaprojektowane, aby nie naruszać hermetyzacji. Spójrzmy na przykład. Załóżmy, że mamy następującą klasę nadrzędną z metodą prywatną:

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

Załóżmy, że z klasy nadrzędnej dziedziczy następująca klasa:

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

Załóżmy, że klasa potomna chce skorzystać z prywatnej metody rodzica. JavaScript na to nie pozwoli i zgłosi błąd:

javascriptclass Student extends User {
  setSurn(surn) {
    this.surn = surn;
  }
  getSurn() {
    return this.#capeFirst(this.surn); // będzie błąd
  }
}
Задание 1

Spróbuj w klasie Employee skorzystać z prywatnej metody rodzica.