Xây dựng một lớp Zoo để quản lý các đối tượng Animal trong TyprScript.
Trong bài viết này sẽ xây dựng một lớp Zoo
để quản lý các đối tượng Animal. Zoo
sẽ có khả năng thêm đối tượng Animal
vào danh sách của nó và in ra âm thanh mà mỗi đối tượng Animal trong Zoo kêu.
Lưu ý: Trong bài này, mình sẽ kết hợp các khái niệm về lớp, mảng, và phương thức để quản lý và tương tác với các đối tượng.
Xác định lớp Animal và lớp Zoo
Bắt đầu với việc định nghĩa lớp Animal và lớp Zoo trong TypeScript.
class Animal { makeSound(): void { // Để bổ sung sau } } class Zoo { animals: Animal[] = []; addAnimal(animal: Animal): void { this.animals.push(animal); } makeSounds(): void { for (const animal of this.animals) { animal.makeSound(); } } }
Thêm đối tượng Animal vào Zoo
Tiếp theo, mình sẽ tạo một số đối tượng Animal
và thêm chúng vào Zoo
.
// Tạo một Zoo mới const myZoo = new Zoo(); // Thêm các đối tượng Animal vào Zoo myZoo.addAnimal(new Dog()); myZoo.addAnimal(new Cat()); myZoo.addAnimal(new Bird());
Định nghĩa lại phương thức makeSound() cho mỗi loài động vật
Mình cần định nghĩa lại phương thức makeSound()
trong mỗi lớp động vật cụ thể để chúng có thể phát ra âm thanh đặc trưng.
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 } }
Gọi phương thức makeSounds() từ Zoo
Cuối cùng,mình mình sẽ gọi phương thức makeSounds()
từ Zoo để nghe âm thanh mà mỗi đối tượng Animal trong Zoo kêu.
myZoo.makeSounds();
Kết quả
Trong mã lệnh trên, mình đã xây dựng lớp Zoo để quản lý các đối tượng Animal. Mỗi đối tượng Animal được thêm vào Zoo, và khi gọi phương thức makeSounds()
,mình nhận được âm thanh đặc trưng của từng loài động vật:
Gâu gâu! Meo meo! Chích chòe!
Chương trình này minh họa sức mạnh của tính đa dạng và kế thừa trong lập trình hướng đối tượng. Nó cho phép mình quản lý và tương tác với các đối tượng khác nhau một cách dễ dàng và linh hoạt trong TypeScript.
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