Constructor khi kế thừa trong OOP JavaScript
Khi kế thừa, bạn có thể ghi đè constructor của lớp cha. Hãy xem ví dụ. Giả sử chúng ta có lớp cha sau:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Giả sử lớp sau kế thừa từ lớp cha:
class Student extends User {
}
Giả sử chúng ta muốn trong lớp con mở rộng constructor, thêm vào đó các tham số bổ sung:
class Student extends User {
constructor(name, surn, year) {
}
}
Trong trường hợp này, chúng ta bắt buộc phải
gọi constructor của lớp cha
bằng super ở dòng đầu tiên:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Lệnh super về bản chất là
constructor của lớp cha. Vì vậy,
hãy truyền vào nó các tham số cần thiết:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Bây giờ, trong lớp con, hãy ghi năm học vào thuộc tính riêng của lớp con:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Hãy tạo getter cho năm học:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Giả sử lớp Employee kế thừa
từ lớp User trong bài học này.
Hãy ghi đè constructor của lớp cha trong lớp Employee,
thêm vào đó tham số tuổi và lương.
Hãy tạo getter cho tuổi và lương.