Private Methoden bei Vererbung in OOP in JavaScript
Private Methoden werden nicht vererbt. Dies ist absichtlich so gestaltet, um den Datenkapselung nicht zu verletzen. Schauen wir uns ein Beispiel an. Nehmen wir an, wir haben die folgende Elternklasse mit einer privaten Methode:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Nehmen wir an, von der Elternklasse erbt die folgende Klasse:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Nehmen wir an, die Kindklasse möchte die private Methode der Elternklasse verwenden. JavaScript erlaubt dies nicht und gibt einen Fehler aus:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // wird ein Fehler sein
}
}
Versuchen Sie in der Klasse Employee
die private Methode der Elternklasse
zu verwenden.