Metodi privati nell'ereditarietà in OOP in JavaScript

I metodi privati non vengono ereditati. Questo è fatto appositamente per non violare l'incapsulamento. Diamo un'occhiata a un esempio. Supponiamo di avere la seguente classe genitore con un metodo privato:

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

Supponiamo che dalla classe genitore erediti la seguente classe:

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

Se la classe figlia vuole utilizzare il metodo privato del genitore, JavaScript non lo permetterà e genererà un errore:

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

Provate nella classe Employee a utilizzare il metodo privato del genitore.