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:
javascriptclass 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:
javascriptclass 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:
javascriptclass 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:
javascriptclass 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:
javascriptclass 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:
javascriptclass Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Hãy tạo getter cho năm học:
javascriptclass 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.