Metode private la moștenire în OOP în JavaScript

Metodele private nu sunt moștenite. Acest lucru este făcut în mod intenționat, pentru a nu încălca încapsularea. Să ne uităm la un exemplu. Să presupunem că avem următoarea clasă părinte cu o metodă privată:

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

Să presupunem că din clasa părinte moștenește următoarea clasă:

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

Să presupunem că clasa copil vrea să folosească metoda privată a părintelui. JavaScript nu va permite acest lucru și va arunca o eroare:

javascriptclass Student extends User {
  setSurn(surn) {
    this.surn = surn;
  }
  getSurn() {
    return this.#capeFirst(this.surn); // va fi eroare
  }
}
Задание 1

Încercați în clasa Employee să folosiți metoda privată a părintelui.