Từ khóa extends
Thuộc phần Lập trình hướng đối tượng trong hành trình JavaScript của Coddy. Bài học 26 trên 56.
Từ khóa extends trong JavaScript dùng để tạo lớp con kế thừa các thuộc tính và phương thức từ lớp cha.
Trước tiên, hãy tạo một lớp cha:
class Animal {
constructor(name) {
this.name = name;
}
speak() {
return `${this.name} makes a noise.`;
}
}Bây giờ, hãy tạo một lớp con kế thừa từ lớp cha:
class Dog extends Animal {
// Lớp Dog kế thừa từ Animal
}Đoạn code đơn giản này có nghĩa là lớp Dog giờ kế thừa tất cả thuộc tính và phương thức từ lớp Animal.
Tạo một đối tượng dog:
const dog = new Dog('Rex');Gọi một phương thức được kế thừa từ lớp cha:
console.log(dog.speak()); // Đầu ra: "Rex makes a noise."Từ khóa extends tạo ra mối quan hệ kế thừa (inheritance), trong đó lớp con (Dog) có thể truy cập và sử dụng mọi chức năng được định nghĩa trong lớp cha (Animal).
Thử thách
Tạo một lớp Student kế thừa lớp Person bằng từ khóa extends và xuất lớp đó.
Tự làm thử
import { Student } from './classes.js';
// Code kiểm tra, đừng sửa
const student = new Student("Emma");
console.log(student.greet()); // Đầu ra phải là "Hello, I'm Emma"Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Lập trình hướng đối tượng
1Đối tượng và từ khóa this
Ôn nhanh: đối tượngThêm phương thức vào đối tượngTìm hiểu từ khóa thisHàm khởi tạoTừ khóa newThử thách ôn tập7Kế thừa và từ khóa extends
Kế thừaQuan hệ "là một"Từ khóa extendsPhương thức super()Kế thừa thuộc tính và phương thứcThử thách ôn tập13Kết hợp hay kế thừa
Quan hệ “có một” và “là một”Những hạn chế của kế thừa nhiều tầngXây dựng đối tượng5Đóng gói và quyền truy cập
Đóng góiTrường công khai và trường riêng tưPhương thức riêng tưThử thách ôn tập8Tổ chức code OOP
Tổ chức các lớp thành module11Dự án: Trình hiển thị hình dạng
Thiết lập: lớp Hình dạng và xuấtKế thừa lớp Hình trònGhi đè và phương thức diện tíchBộ đếm hình dạng tĩnh6Dự án: Tài khoản ngân hàng đơn giản
Lớp BankAccountGửi tiền và rút tiềnSố dư dưới dạng thuộc tính riêng tư9Phương thức và thuộc tính tĩnh
Cấp lớp và cấp instanceThuộc tính tĩnhPhương thức tiện ích tĩnhThử thách ôn tậpTự luyện tập: Trình biên dịch JavaScript online