Zasebne metode pri dedovanju v OOP v JavaScript

Zasebne metode se ne dedujejo. To je narejeno namerno, da ne bi prišlo do kršitve inkapsulacije. Poglejmo si na primeru. Recimo, da imamo naslednji nadrejeni razred z zasebno metodo:

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

Recimo, da od nadrejenega razreda deduje naslednji razred:

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

Recimo, da potomec želi uporabiti zasebno metodo starša. JavaScript tega ne bo dovolil in bo izpisal napako:

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

Poskusite v razredu Employee uporabiti zasebno metodo starša.