Ghi đè phương thức của lớp cha trong OOP trong JavaScript
Lớp con có thể ghi đè phương thức của lớp cha bằng cách tạo một phương thức có cùng tên. Hãy xem xét một ví dụ. Giả sử chúng ta có lớp cha sau:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Hãy tạo một phương thức cùng tên trong lớp con:
class Student extends User {
setName(name) {
}
}
Thông thường, việc ghi đè các phương thức của lớp cha là cần thiết để thay đổi hoặc bổ sung hành vi của phương thức đó. Trong trường hợp của chúng ta, hãy thêm kiểm tra độ dài của tên:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Hãy đảm bảo rằng phương thức được gọi chính là phương thức đã bị ghi đè. Đầu tiên, hãy tạo một đối tượng của lớp con:
let student = new Student;
Bây giờ hãy gọi phương thức của chúng ta, truyền vào một giá trị hợp lệ:
student.setName('john');
Và bây giờ hãy gọi phương thức, truyền vào một giá trị không hợp lệ. Kết quả chúng ta sẽ thấy trong console là một lỗi được ném ra:
student.setName(''); // lỗi
Trong lớp User, hãy tạo
getter và setter cho tuổi.
Trong lớp Employee, hãy ghi đè
setter của tuổi và thực hiện trong đó
kiểm tra xem tuổi có từ
18 đến 65 tuổi không.