คุณสมบัติส่วนตัวในการสืบทอดใน OOP ใน JavaScript
คุณสมบัติส่วนตัวไม่ถูกสืบทอด แต่คลาสลูกสามารถจัดการกับพวกมันได้ ผ่านเมธอดสาธารณะของคลาสแม่ มาลองดูในทางปฏิบัติกัน สมมติว่าเรามีคลาสแม่ดังต่อไปนี้ พร้อมกับคุณสมบัติส่วนตัวและ getter และ setter ของมัน:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
ให้คลาสลูกสืบทอด จากคลาสแม่ดังต่อไปนี้:
class Student extends User {
}
มาสร้างอ็อบเจ็กต์ของคลาสลูก:
let student = new Student;
มาใช้เมธอดของคลาสแม่ เพื่อเขียนค่าลงในคุณสมบัติส่วนตัว ของมัน:
student.setName('john');
มาใช้เมธอดของคลาสแม่ เพื่ออ่านคุณสมบัติส่วนตัว ของมัน:
let name = student.getName();
console.log(name);
มีคลาสแม่ดังต่อไปนี้:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
สร้างคลาส Employee
ที่จะสืบทอด
จากคลาสแม่นี้
สร้างอ็อบเจ็กต์ของคลาส Employee
และเรียก setter และ getter ที่สืบทอดมา
ในคลาส Employee สร้าง
เมธอดต่อไปนี้:
getFull() {
return this.#name + ' ' + this.#surn;
}
ตรวจสอบให้แน่ใจว่าโค้ดในเมธอดจะนำไปสู่ ข้อผิดพลาด