JavaScript OOP'de Kalıtımda Private Metotlar
Private metotlar kalıtım yoluyla aktarılmaz. Bu, kapsüllemeyi ihlal etmemek için özellikle yapılmıştır. Bir örnek üzerinden inceleyelim. Aşağıdaki gibi private bir metoda sahip bir ebeveyn sınıfımız olduğunu varsayalım:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Ebeveyn sınıftan aşağıdaki sınıfın türediğini varsayalım:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Alt sınıfın, ebeveynin private metodunu kullanmak istediğini varsayalım. JavaScript buna izin vermeyecek ve bir hata verecektir:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // hata verecek
}
}
Employee sınıfında ebeveynin private
metodunu kullanmayı deneyin.