Tạo lớp Animal với makeSound() trống,để tạo lớp con Dog, Cat, và Bird trong TypeScript.
Trong bài tập này mình sẽ tìm hiểu sự đa dạng của đối tượng thông qua việc triển khai lớp Animal với một phương thức trống và sau đó, định nghĩa lại phương thức này cho các lớp con Dog, Cat, và Bird để mô phỏng âm thanh phát ra từ mỗi loài động vật.
Lưu ý: Lập trình hướng đối tượng cho phép mình tận dụng tính kế thừa và đa hình, cho phép mỗi đối tượng có thể hoạt động theo cách riêng biệt.
Tạo lớp Animal và phương thức makeSound()
Bắt đầu với lớp Animal, mình sẽ định nghĩa một lớp cơ sở mà các lớp con sẽ kế thừa. Trong lớp Animal, mình sẽ chỉ định một phương thức makeSound() nhưng không cung cấp bất kỳ thân hàm nào.
class Animal {
makeSound(): void {
// Phương thức trống
}
}
Triển khai các lớp on: Dog, Cat, và Bird
Tiếp theo, mình sẽ triển khai các lớp con Dog, Cat, và Bird, mỗi lớp sẽ override lại phương thức makeSound() để phát ra âm thanh riêng biệt.
class Dog extends Animal {
makeSound(): void {
console.log("Gâu gâu!"); // Kêu của chó
}
}
class Cat extends Animal {
makeSound(): void {
console.log("Meo meo!"); // Kêu của mèo
}
}
class Bird extends Animal {
makeSound(): void {
console.log("Chích chòe!"); // Kêu của chim
}
}Trong mã lệnh trên, mình đã định nghĩa lớp cơ sở Animal và sau đó override lại phương thức makeSound() cho mỗi lớp con Dog, Cat, và Bird. Mỗi phương thức makeSound() đã được định nghĩa để phản ánh âm thanh đặc trưng của từng loài động vật.
Kết quả
Khi chạy mã lệnh, mình sẽ tạo ra các đối tượng từ các lớp Dog, Cat, và Bird và gọi phương thức makeSound() từ mỗi đối tượng để nghe âm thanh của chúng.
const dog = new Dog(); const cat = new Cat(); const bird = new Bird(); dog.makeSound(); // Kết quả: Gâu gâu! cat.makeSound(); // Kết quả: Meo meo! bird.makeSound(); // Kết quả: Chích chòe!
Việc triển khai lớp Animal và các lớp con Dog, Cat, và Bird là một ví dụ minh họa về tính đa dạng của lập trình hướng đối tượng. Điều này cho phép mình tận dụng sức mạnh của đa hình để xử lý các đối tượng với các hành vi khác nhau, đồng thời giữ cho mã nguồn linh hoạt và dễ bảo trì.
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Viết một lớp Triangle để tính diện tích và chu vi của một tam giác trong TypeScript.
- Tạo một lớp Shape và phương thức để tính diện tích,chu vi của hình vuông trong TypeScript.
- Tính diện tích và chu vi của các hình tròn và hình ellipse trong TypeScript.
- Tạo một lớp Rectangle và một lớp con là Parallelogram tính diện tích và chu vi của hình chữ nhật trong TypeScript.
- Viết một lớp Octagon để tính diện tích và chu vi của một hình bát giác trong TypeScript.
- Tạo lớp Pentagon và tính diện tích và chu vi của một hình ngũ giác đều trong TypeScript.
- Tạo lớp Hexagon để tính diện tích và chu vi của một hình lục giác trong TypeScript.
- Tạo lớp Animal với makeSound() trống,để tạo lớp con Dog, Cat, và Bird trong TypeScript.
- Tạo một chương trình người dùng nhập vào danh sách các đối tượng thuộc các lớp Dog, Cat, và Bird trong TypeScript.
- Xây dựng một lớp Zoo để quản lý các đối tượng Animal trong TyprScript.
- Viết một lớp EventListener có một phương thức listen() để lắng nghe các sự kiện trong TypeScript

Các hàm xử lý chuỗi trong Javascript (cắt / tách / nối chuỗi ..)
Chia lấy phần dư / chia lấy phần nguyên trong javascript
Các cách khai báo biến trong Javascript
Các sự kiện (Event) trong Javascript
Hướng tạo thanh search bar bằng CSS
Hàm array.slice() trong Javascript
Tính tổng hai số bằng Javascript (cộng hai số)
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng