Privātās metodes mantojumā OOP JavaScript
Privātās metodes netiek mantotas. Tas ir darīts ar nolūku, lai nepārkāptu inkapsulāciju. Apskatīsim to ar piemēru. Pieņemsim, ka mums ir šādi vecāku klase ar privātu metodi:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Pieņemsim, ka no vecāku klases manto šāda klase:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Pieņemsim, ka pēctecis vēlas izmantot vecāka privāto metodi. JavaScript to neļaus un izvadīs kļūdu:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // radīsies kļūda
}
}
Pamēģiniet klasē Employee
izmantot vecāka privāto metodi.