Zasebne lastnosti pri dedovanju v OOP v JavaScript

Zasebne lastnosti se ne dedujejo. Toda potomec lahko manipulira z njimi prek javnih metod starša. Poglejmo si to v praksi. Recimo, da imamo naslednji razred-starš z zasebno lastnostjo in njenim getterjem in setterjem:

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

Recimo, da od starša deduje naslednji potomec:

javascriptclass Student extends User {
  
}

Ustvarimo objekt potomca:

javascriptlet student = new Student;

Uporabimo metodo starša, da zapišemo njegovo zasebno lastnost:

javascriptstudent.setName('john');

Uporabimo metodo starša, da preberemo njegovo zasebno lastnost:

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

Podan je naslednji razred-starš:

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

Naredite razred Employee, ki bo dedoval od tega starša.

Задание 2

Ustvarite objekt razreda Employee in pokličite podedovane setterje in getterje.

Задание 3

V razredu Employee naredite naslednjo metodo:

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

Prepričajte se, da koda metode povzroči napako.