Ιδιωτικές Ιδιότητες κατά την Κληρονομικότητα στην Αντικειμενοστραφή Προγραμματισμό στο JavaScript

Οι ιδιωτικές ιδιότητες δεν κληρονομούνται. Αλλά ένα παιδικό αντικείμενο μπορεί να τις χειριστεί μέσω των δημόσιων μεθόδων του γονέα. Ας δούμε πώς λειτουργεί αυτό στην πράξη. Ας υποθέσουμε ότι έχουμε την ακόλουθη γονική κλάση με μια ιδιωτική ιδιότητα και τους getters και setters της:

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

Ας υποθέσουμε ότι από τον γονέα κληρονομεί το ακόλουθο παιδικό αντικείμενο:

javascriptclass Student extends User {
  
}

Ας δημιουργήσουμε ένα αντικείμενο του παιδικού:

javascriptlet student = new Student;

Ας χρησιμοποιήσουμε τη μέθοδο του γονέα για να ορίσουμε την ιδιωτική του ιδιότητα:

javascriptstudent.setName('john');

Ας χρησιμοποιήσουμε τη μέθοδο του γονέα για να διαβάσουμε την ιδιωτική του ιδιότητα:

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

Δίνεται η ακόλουθη γονική κλάση:

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

Δημιουργήστε την κλάση Employee, η οποία θα κληρονομεί από αυτόν τον γονέα.

Задание 2

Δημιουργήστε ένα αντικείμενο της κλάσης Employee και καλέστε τους κληρονομημένους setters και getters.

Задание 3

Στην κλάση Employee δημιουργήστε την ακόλουθη μέθοδο:

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

Βεβαιωθείτε ότι ο κώδικας της μεθόδου οδηγεί σε σφάλμα.