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.
Trong bài tập này mình sẽ xây dựng một chương trình đơn giản cho phép người dùng nhập danh sách các đối tượng thuộc các lớp Dog, Cat, và Bird, và sau đó in ra âm thanh mà mỗi đối tượng kêu bằng cách gọi phương thức makeSound().
trong TypeScript
Lưu ý: Đây là một ví dụ về việc tận dụng tính đa hình trong lập trình hướng đối tượng. Mình sẽ sử dụng khái niệm của lớp cơ sở và kế thừa để quản lý các đối tượng khác nhau có cùng phương thức.
Xác định các lớp và phương thức makeSound()
Trước hết, mình cần định nghĩa các lớp Dog, Cat, và Bird với phương thức makeSound() riêng biệt cho mỗi loài động vật.
class Dog { makeSound(): void { console.log("Gâu gâu!"); // Kêu của chó } } class Cat { makeSound(): void { console.log("Meo meo!"); // Kêu của mèo } } class Bird { makeSound(): void { console.log("Chích chòe!"); // Kêu của chim } }
Nhập danh sách các đối tượng
Chương trình sẽ cho phép 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.
// Đoạn mã để người dùng nhập các đối tượng const objects: any[] = []; // Mảng chứa các đối tượng // Ví dụ: Người dùng nhập một số đối tượng objects.push(new Dog()); objects.push(new Cat()); objects.push(new Bird());
Gọi phương thức makeSound() của mỗi đối tượng
Mình sẽ duyệt qua danh sách các đối tượng và gọi phương thức makeSound()
để in ra âm thanh mỗi đối tượng kêu.
// Duyệt qua danh sách và gọi phương thức makeSound() của mỗi đối tượng for (const obj of objects) { obj.makeSound(); }
Đoạn mã trên tạo ra một danh sách các đối tượng thuộc các lớp Dog, Cat, và Bird, sau đó duyệt qua danh sách này để gọi phương thức makeSound()
của mỗi đối tượng. Điều này cho phép mình nghe thấy âm thanh đặc trưng của từng loài động vật.
Kết quả
Khi chạy chương trình và nhập các đối tượng, kết quả sẽ hiển thị âm thanh mỗi loài động vật:
Gâu gâu! Meo meo! Chích chòe!
Chương trình này là một ví dụ minh họa về tính đa dạng của các đối tượng được tạo ra bởi người dùng và cách sử dụng tính đa hình trong lập trình hướng đối tượng để quản lý các hành vi khác nhau của từng đối tượng. Điều này giúp mình tận dụng sức mạnh của lập trình hướng đối tượng để xử lý các loại đối tượng phức tạp.
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