Ο Κατασκευαστής στην Κληρονομικότητα στον Αντικειμενοστραφή Προγραμματισμό στην 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;
}
}
Ας υποθέσουμε ότι η κλάση Employee κληρονομεί
από την κλάση User από αυτό
το μάθημα.
Παρακάμψτε στην κλάση Employee
τον κατασκευαστή του γονέα, προσθέτοντας σε αυτόν
μια παράμετρο με την ηλικία και τον μισθό.
Δημιουργήστε μεθόδους πρόσβασης (getters) για την ηλικία και τον μισθό.