Ιδιωτικές Μέθοδοι στην Κληρονομικότητα στην 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 να χρησιμοποιήσετε την ιδιωτική μέθοδο του γονέα.