Yksityiset menetelmät perinnässä OOP:ssa JavaScriptissä

Yksityisiä menetelmiä ei periydy. Tämä on tehty tarkoituksella, jotta kapselointia ei rikota. Katsotaanpa esimerkkiä. Olkoon meillä seuraava vanhemman luokka, jossa on yksityinen menetelmä:

javascriptclass User {
  setName(name) {
    this.name = name;
  }
  getName() {
    return this.#capeFirst(this.name);
  }
  
  #capeFirst(str) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

Olkoon vanhemmasta luokasta perii seuraava luokka:

javascriptclass Student extends User {
  setSurn(surn) {
    this.surn = surn;
  }
  getSurn() {
    return this.surn;
  }
}

Olkoon jälkeläinen haluaa käyttää vanhemman yksityistä menetelmää. JavaScript ei salli tätä ja antaa virheen:

javascriptclass Student extends User {
  setSurn(surn) {
    this.surn = surn;
  }
  getSurn() {
    return this.#capeFirst(this.surn); // tulee virhe
  }
}
Задание 1

Kokeile luokassa Employee käyttää vanhemman yksityistä menetelmää.