Private metoder ved arv i OOP i JavaScript
Private metoder arves ikke. Dette er gjort med vilje for ikke å bryte inkapsling. La oss se på et eksempel. La oss si at vi har følgende foreldre- klasse med en privat metode:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
La oss si at følgende klasse arver fra foreldreklassen:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
La oss si at avkommet ønsker å bruke forelderens private metode. JavaScript tillater ikke dette og vil gi en feil:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // vil gi feil
}
}
Prøv i klassen Employee
å bruke forelderens private metode.