Privatna svojstva pri nasleđivanju u OOP-u u JavaScript-u

Privatna svojstva se ne nasleđuju. Ali potomak može da manipuliše njima putem javnih metoda roditelja. Hajde da vidimo to u praksi. Neka imamo sledeću roditeljsku klasu sa privatnim svojstvom i njegovim geterom i seterom:

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

Neka od roditelja nasleđuje sledeći potomak:

javascriptclass Student extends User {
  
}

Kreirajmo objekat potomka:

javascriptlet student = new Student;

Iskoristimo metodu roditelja, da bismo upisali njegovo privatno svojstvo:

javascriptstudent.setName('john');

Iskoristimo metodu roditelja, da bismo pročitali njegovo privatno svojstvo:

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

Data je sledeća roditeljska klasa:

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

Napravite klasu Employee, koja će nasleđivati od ovog roditelja.

Задание 2

Kreirajte objekat klase Employee i pozovite nasleđene setere i getere.

Задание 3

U klasi Employee napravite sledeći metod:

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

Uverite se da će kod metoda dovesti do greške.