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:

javascriptclass 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:

javascriptclass 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:

javascriptclass 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:

javascriptlet 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ệ:

javascriptstudent.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:

javascriptstudent.setName(''); // lỗi
Задание 1

Trong lớp User, hãy tạo getter và setter cho tuổi.

Задание 2

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.