Yksityiset ominaisuudet perinnässä OOP:ssa JavaScriptissä

Yksityisiä ominaisuuksia ei periydy. Mutta lapsiluokka voi manipuloida niitä vanhemman julkisten metodien kautta. Katsotaan käytännössä. Olkoon meillä seuraava vanhempiluokka yksityisellä ominaisuudella ja sen getterillä ja setterillä:

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

Olkoon vanhemmasta perii seuraava lapsiluokka:

javascriptclass Student extends User {
  
}

Luodaan lapsiluokan olio:

javascriptlet student = new Student;

Käytetään vanhemman metodia tallentaaksemme sen yksityisen ominaisuuden:

javascriptstudent.setName('john');

Käytetään vanhemman metodia lukeaksemme sen yksityisen ominaisuuden:

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

Annettu seuraava vanhempiluokka:

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

Tee luokka Employee, joka perii tästä vanhemmasta.

Задание 2

Luo luokan Employee olio ja kutsu perittyjä settereitä ja gettereitä.

Задание 3

Luokassa Employee tee seuraava metodi:

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

Varmista, että metodin koodi johtaa virheeseen.