Privátní metody při dědění v OOP v JavaScriptu

Privátní metody nejsou děděny. To je uděláno záměrně, aby nebylo narušeno zapouzdření. Podívejme se na příklad. Předpokládejme, že máme následující rodičovskou třídu s privátní metodou:

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

Předpokládejme, že z rodičovské třídy dědí následující třída:

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

Předpokládejme, že potomek chce použít privátní metodu rodiče. JavaScript to nedovolí a vypíše chybu:

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

Zkuste ve třídě Employee použít privátní metodu rodiče.