Tạo quản lý xe với TypeScript
Tạo lớp cơ sở Vehicle
và các lớp con kế thừa từ nó là một cách tuyệt vời để tổ chức và quản lý thông tin về các loại phương tiện khác nhau. Trong bài tập này, mình sẽ bắt đầu tìm hiểu với lớp cơ sở Vehicle
, sau đó tạo các lớp con Car
, Motorcycle
, và Truck
.
Định nghĩa lớp cơ sở Vehicle
class Vehicle { constructor(public brand: string, public model: string, public year: number) {} startEngine(): void { console.log("Đã khởi động động cơ."); } stopEngine(): void { console.log("Đã tắt động cơ."); } } class Car extends Vehicle { constructor(brand: string, model: string, year: number, public type: string) { super(brand, model, year); this.type = type; } drive(): void { console.log(`Đang lái xe ${this.year} ${this.brand} ${this.model} loại ${this.type}.`); } } class Motorcycle extends Vehicle { constructor(brand: string, model: string, year: number, public category: string) { super(brand, model, year); this.category = category; } wheelie(): void { console.log(`Thực hiện một động tác Wheelie với xe máy ${this.year} ${this.brand} ${this.model} thuộc loại ${this.category}.`); } } class Truck extends Vehicle { constructor(brand: string, model: string, year: number, public capacity: number) { super(brand, model, year); this.capacity = capacity; } loadCargo(): void { console.log(`Đang tải hàng vào xe tải ${this.year} ${this.brand} ${this.model} với dung tích ${this.capacity} kg.`); } } // Sử dụng các lớp đã định nghĩa const car = new Car("Toyota", "Corolla", 2022, "Sedan"); car.startEngine(); car.drive(); const motorcycle = new Motorcycle("Harley-Davidson", "Street 750", 2021, "Cruiser"); motorcycle.startEngine(); motorcycle.wheelie(); const truck = new Truck("Ford", "F-150", 2019, 2000); truck.startEngine(); truck.loadCargo();
class Vehicle { ... }:
Định nghĩa lớp cơ sở Vehicle với các thuộc tính nhưbrand
,model
,year
và các phương thức nhưstartEngine()
vàstopEngine().
- Các lớp con
Car
,Motorcycle
, vàTruck
kế thừa từVehicle
, mỗi lớp con có các thuộc tính và phương thức riêng biệt, phù hợp với loại phương tiện tương ứng. - Trong hàm
constructor
của mỗi lớp con, chúng ta gọisuper()
để gọi hàmconstructor
của lớp cha (Vehicle), truyền vào thông tin cần thiết cho các thuộc tính chung. - Mỗi lớp con cũng có các phương thức riêng biệt, như
drive()
choCar
,wheelie()
choMotorcycle
, vàloadCargo()
choTruck
.
Kết quả
Khi chạy đoạn mã trên, mình sẽ nhận được kết quả sau:
Đã khởi động động cơ. Đang lái xe 2022 Toyota Corolla loại Sedan. Đã khởi động động cơ. Thực hiện một động tác Wheelie với xe máy 2021 Harley-Davidson Street 750 thuộc loại Cruiser. Đã khởi động động cơ. Đang tải hàng vào xe tải 2019 Ford F-150 với dung tích 2000 kg.
Đây chỉ là ví dụ, kết quả sẽ phụ thuộc vào việc môi trường thực thi mã và cách định nghĩa các hàm trong TypeScript.
Việc sử dụng kế thừa giúp mình có thể xây dựng các lớp con với các thuộc tính và hành vi riêng biệt, đồng thời vẫn kế thừa các phương thức và thuộc tính từ lớp cơ sở Vehicle. Điều này giúp tạo ra một cấu trúc dễ quản lý và tái sử dụng linh hoạt.
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Tạo quản lý nhân viên với TypeScript
- Tạo hệ thống quản lý học viên với TypeScript
- Tạo lớp Animal với các thuộc tính và phương thức chung cho động vật với TypeScript.
- Tạo lớp cơ sở Component đại diện cho một thành phần giao diện trong TypeScript.
- Tạo quản lý xe với TypeScript
- Tạo lớp hình học với TypeScript
- Xây dựng hệ thống ngân hàng trong Typescript