პრივატული მეთოდები მემკვიდრეობითობისას OOP-ში JavaScript-ში

პრივატული მეთოდები არ გამოიყოფა მემკვიდრეობით. ეს გაკეთებულია სპეციალურად, რათა არ დაირღვეს ინკაფსულაცია. მოდით შევხედოთ მაგალითს. დავუშვათ, ჩვენ გვაქვს შემდეგი მშობელი კლასი პრივატული მეთოდით:

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

დავუშვათ, მშობელი კლასისგან მემკვიდრეობით მიიღებს შემდეგმა კლასმა:

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

დავუშვათ, შვილობილმა სურს გამოიყენოს მშობლის პრივატული მეთოდი. JavaScript ამის ნებას არ მისცემს და შეცდომას დააგენერირებს:

javascriptclass Student extends User {
  setSurn(surn) {
    this.surn = surn;
  }
  getSurn() {
    return this.#capeFirst(this.surn); // იქნება შეცდომა
  }
}
Задание 1

სცადეთ კლასში Employee გამოიყენოთ მშობლის პრივატული მეთოდი.