Ο Κατασκευαστής στην Κληρονομικότητα στον Αντικειμενοστραφή Προγραμματισμό στην JavaScript

Στην κληρονομικότητα, μπορούμε να παρακάμπτουμε τον κατασκευαστή του γονέα. Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε την ακόλουθη κλάση γονέα:

javascriptclass User {
  constructor(name, surn) {
    this.name = name;
    this.surn = surn;
  }
  
  getName() {
    return this.name;
  }
  getSurn() {
    return this.surn;
  }
}

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

javascriptclass Student extends User {
  
}

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

javascriptclass Student extends User {
  constructor(name, surn, year) {
    
  }
}

Σε αυτή την περίπτωση, πρέπει υποχρεωτικά να καλέσουμε στην πρώτη γραμμή τον κατασκευαστή του γονέα μέσω του super:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super();
  }
}

Η εντολή super ουσιαστικά είναι ο κατασκευαστής του γονέα. Επομένως, ας περάσουμε σε αυτόν τις απαιτούμενες παραμέτρους:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
  }
}

Τώρα στον απόγονο, το έτος φοίτησης θα το γράψουμε σε μια δική του ιδιότητα του απογόνου:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
    this.year = year;
  }
}

Ας φτιάξουμε μια μέθοδο πρόσβασης (getter) για το έτος φοίτησης:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
    this.year = year;
  }
  
  getYear() {
    return this.year;
  }
}
Задание 1

Ας υποθέσουμε ότι η κλάση Employee κληρονομεί από την κλάση User από αυτό το μάθημα.

Задание 2

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

Задание 3

Δημιουργήστε μεθόδους πρόσβασης (getters) για την ηλικία και τον μισθό.