Privátne vlastnosti pri dedení v OOP v JavaScripte

Privátne vlastnosti nie sú dedené. Ale potomok s nimi môže manipulovať cez verejné metódy rodiča. Pozrime sa na to v praxi. Nech máme nasledujúcu triedu-rodiča s privátnou vlastnosťou a jej getterom a setterom:

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

Nech od rodiča dedí nasledujúci potomok:

javascriptclass Student extends User {
  
}

Vytvorme objekt potomka:

javascriptlet student = new Student;

Využime metódu rodiča, aby sme zapísali jeho privátnu vlastnosť:

javascriptstudent.setName('john');

Využime metódu rodiča, aby sme prečítali jeho privátnu vlastnosť:

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

Daná je nasledujúca trieda-rodič:

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

Vytvorte triedu Employee, ktorá bude dediť od tohto rodiča.

Задание 2

Vytvorte objekt triedy Employee a zavolajte zdedené settery a gettery.

Задание 3

V triede Employee urobte nasledujúcu metódu:

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

Presvedčte sa, že kód metódy povedie k chybe.