Các phương thức riêng tư khi kế thừa trong OOP JavaScript
Các phương thức riêng tư không được kế thừa. Điều này được thiết kế có chủ đích để không vi phạm tính đóng gói. Hãy xem xét qua một ví dụ. Giả sử chúng ta có lớp cha sau đây với một phương thức riêng tư:
javascriptclass User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Giả sử lớp sau kế thừa từ lớp cha:
javascriptclass Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Giả sử lớp con muốn sử dụng phương thức riêng tư của lớp cha. JavaScript sẽ không cho phép điều này và sẽ đưa ra lỗi:
javascriptclass Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // sẽ báo lỗi
}
}
Задание 1
Hãy thử trong lớp Employee
sử dụng phương thức riêng tư
của lớp cha.