Ιδιωτικές Μέθοδοι στην Κληρονομικότητα στην OOP στην JavaScript
Οι ιδιωτικές μέθοδοι δεν κληρονομούνται. Αυτό γίνεται σκόπιμα, για να μην παραβιάζεται η ενθυλάκωση. Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε την ακόλουθη γονική κλάση με μια ιδιωτική μέθοδο:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Ας υποθέσουμε ότι η ακόλουθη κλάση κληρονομεί από τη γονική κλάση:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Ας υποθέσουμε ότι ο απόγονος θέλει να χρησιμοποιήσει την ιδιωτική μέθοδο του γονέα. Η JavaScript δεν το επιτρέπει αυτό και θα εμφανίσει σφάλμα:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // θα προκύψει σφάλμα
}
}
Δοκιμάστε στην κλάση Employee
να χρησιμοποιήσετε την ιδιωτική μέθοδο
του γονέα.