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

Privátní vlastnosti nejsou děděny. Ale potomek s nimi může manipulovat přes veřejné metody rodiče. Podívejme se na to v praxi. Předpokládejme, že máme následující nadřazenou třídu s privátní vlastností a jejím getterem a setterem:

javascriptclass User {
  #name;
  
  setName(name) {
    this.#name = name;
  }
  getName() {
    return this.#name;
  }
}

Předpokládejme, že z rodiče dědí následující potomek:

javascriptclass Student extends User {
  
}

Vytvořme objekt potomka:

javascriptlet student = new Student;

Použijme metodu rodiče, abychom zapsali jeho privátní vlastnost:

javascriptstudent.setName('john');

Použijme metodu rodiče, abychom přečetli jeho privátní vlastnost:

javascriptlet name = student.getName();
console.log(name);
Задание 1

Je dána následující nadřazená třída:

javascriptclass User {
  #name;
  #surn;
  
  setName(name) {
    this.#name = name;
  }
  getName() {
    return this.#name;
  }
  
  setSurn(surn) {
    this.#surn = surn;
  }
  getSurn() {
    return this.#surn;
  }
}

Vytvořte třídu Employee, která bude dědit od tohoto rodiče.

Задание 2

Vytvořte objekt třídy Employee a zavolejte zděděné settery a gettery.

Задание 3

V třídě Employee vytvořte následující metodu:

javascriptgetFull() {
  return this.#name + ' ' + this.#surn;
}

Přesvědčte se, že kód metody povede k chybě.