Privé methoden bij overerving in OOP in JavaScript
Privé methoden worden niet overgeërfd. Dit is met opzet gedaan om encapsulatie niet te schenden. Laten we een voorbeeld bekijken. Stel dat we de volgende bovenliggende klasse hebben met een privé methode:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Stel dat de volgende klasse overerft van de bovenliggende klasse:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Stel dat de afstammeling gebruik wil maken van de privé methode van de ouder. JavaScript staat dit niet toe en geeft een foutmelding:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // geeft een fout
}
}
Probeer in de klasse Employee
gebruik te maken van de privé methode
van de ouder.