Thuộc tính riêng tư khi kế thừa trong OOP JavaScript

Thuộc tính riêng tư không được kế thừa. Tuy nhiên, lớp con có thể thao tác với chúng thông qua các phương thức công khai của lớp cha. Hãy cùng xem xét trong thực tế. Giả sử chúng ta có lớp cha sau với một thuộc tính riêng tư cùng getter và setter của nó:

javascriptclass User {
  #name;
  
  setName(name) {
    this.#name = name;
  }
  getName() {
    return this.#name;
  }
}

Giả sử lớp sau kế thừa từ lớp cha:

javascriptclass Student extends User {
  
}

Hãy tạo một đối tượng của lớp con:

javascriptlet student = new Student;

Sử dụng phương thức của lớp cha để ghi giá trị vào thuộc tính riêng tư của nó:

javascriptstudent.setName('john');

Sử dụng phương thức của lớp cha để đọc thuộc tính riêng tư của nó:

javascriptlet name = student.getName();
console.log(name);
Задание 1

Cho lớp cha sau:

javascriptclass User {
  #name;
  #surn;
  
  setName(name) {
    this.#name = name;
  }
  getName() {
    return this.#name;
  }
  
  setSurn(surn) {
    this.#surn = surn;
  }
  getSurn() {
    return this.#surn;
  }
}

Hãy tạo lớp Employee kế thừa từ lớp cha này.

Задание 2

Tạo một đối tượng của lớp Employee và gọi các setter và getter đã kế thừa.

Задание 3

Trong lớp Employee hãy tạo phương thức sau:

javascriptgetFull() {
  return this.#name + ' ' + this.#surn;
}

Hãy đảm bảo rằng mã của phương thức này sẽ dẫn đến lỗi.