Privaatmetodes by Oorerwing in OOP in JavaScript
Privaatmetodes word nie geërf nie. Dit is doelbewus gedoen om nie inkapsulering te skend nie. Kom ons kyk na 'n voorbeeld. Laat ons sê ons het die volgende ouer klas met 'n private metode:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Laat ons sê die volgende klas erf van die ouerklas:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Laat ons sê die nageslag wil die privaatmetode van die ouer gebruik. JavaScript sal dit nie toelaat nie en sal 'n fout gee:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // sal 'n fout gee
}
}
Probeer om in die klas Employee
die privaatmetode van die
ouer te gebruik.