TYPESCRIPT 2.X CĂN BẢN
Hàm trong TypeScript Sử dụng hàm generics Sử dụng hàm generics trong TypeScript Sử dụng Array trong TypeScript Sử dụng Tuple trong TypeScript Sử dụng kiểu Array, Tuple, Enum trong TypeScript Interface trong Typescript Hybrid Types với Interface trong TypeScript Khác biệt khi sử dụng 'type' và 'interface' trong TypeScript Cách dùng Enum trong TypeScript Types và interface trong TypeScript Class trong TypeScript Sử dụng Abstract Classes trong TypeScript Sử dụng Interface trong Typescript (phần 2) Sử dụng Casting trong TypeScript Tìm hiểu về Generics trong TypeScript Tìm hiểu về utility types trong Typescript Utility types phổ biến trong Typescript Sử dụng default parameters trong TypeScript Modules trong TypeScript Rest Parameters trong TypeScript Sử dụng Function Overloadings trong TypeScript Sử dụng Type Assertions trong TypeScript Sử dụng Static Methods và Properties trong TypeScript. Sử dụng Access Modifiers trong TypeScript 10 mẹo và thủ thuật hay nhất trong TypeScript 5 Cách giúp bạn loại bỏ "any" trong TypeScript Mapped Types trong TypeScript Dependency Injection trong Typescript 5 ký hiệu khó hiểu cần biết trong TypeScript Cách sử dụng @ts-expect-error trong Typescript Declaration Merging trong TypeScript Tìm hiểu Branded Type trong TypeScript Namespaces trong Typescript Phân biệt Modules và Namespaces trong TypeScript Triple-Slash Directives trong TypeScript là gì? Phần 1: Biến trong TypeScript Phần 2: Biến trong TypeScript Property trong TypeScript Phân tích JSON trong TypeScript Bài tập TypeScript: Các dạng bài tập cơ bản Bài tập TypeScript: Lập trình Hướng đối tượng trong TypeScript Bài tập TypeScript: Kiểu Generic Types trong Typescript Bài tập TypeScript: Các kiểu dữ liệu mảng và tuple. Bài tập TypeScript: Classes và Inheritance trong Typescript Bài 01: TypeScript là gì? TypeScript và Javascript Bài 02: Cài đặt TypeScript Bài 03: TypeScript Basic Types Bài 04: Khai báo biến trong TypeScript Bài 05: Lệnh If Else và Switch Case trong TypeScript Bài 06: Vòng lặp trong TypeScript
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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ì.

test php

Bài giải

-------------------- ######## --------------------

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Bài tập TypeScript: Classes và Inheritance trong Typescript

Bài tập TypeScript: Classes và Inheritance trong Typescript

Bài tập TypeScript: Các kiểu dữ liệu mảng và tuple.

Bài tập TypeScript: Các kiểu dữ liệu mảng và tuple.

Bài tập TypeScript: Kiểu Generic Types trong Typescript

Bài tập TypeScript: Kiểu Generic Types trong Typescript

Bài tập TypeScript: Các dạng bài tập cơ bản

Bài tập TypeScript: Các dạng bài tập cơ bản

Phân tích JSON trong TypeScript

Phân tích JSON trong TypeScript

Property trong TypeScript

Property trong TypeScript

Phần 2: Biến trong TypeScript

Phần 2: Biến trong TypeScript

Phần 1: Biến trong TypeScript

Phần 1: Biến trong TypeScript

Triple-Slash Directives trong TypeScript là gì?

Triple-Slash Directives trong TypeScript là gì?

Phân biệt Modules và Namespaces trong TypeScript

Phân biệt Modules và Namespaces trong TypeScript

Tìm hiểu Branded Type trong TypeScript

Tìm hiểu Branded Type trong TypeScript

Namespaces trong Typescript

Namespaces trong Typescript

Declaration Merging trong TypeScript

Declaration Merging trong TypeScript

Cách sử dụng @ts-expect-error trong typescript

Cách sử dụng @ts-expect-error trong typescript

5 ký hiệu khó hiểu cần biết trong TypeScript

5 ký hiệu khó hiểu cần biết trong TypeScript

Dependency Injection trong Typescript

Dependency Injection trong Typescript

Mapped Types trong TypeScript

Mapped Types trong TypeScript

5 Cách giúp bạn loại bỏ

5 Cách giúp bạn loại bỏ "any" trong TypeScript

10 mẹo và thủ thuật hay nhất trong TypeScript

10 mẹo và thủ thuật hay nhất trong TypeScript

Sử dụng Access Modifiers trong TypeScript

Sử dụng Access Modifiers trong TypeScript

Top