Rate this post

Các Abstract Classes là các lớp trong Dart có một hoặc nhiều phương thức trừu tượng. Tính trừu tượng là một phần của gói dữ liệu nơi hoạt động thực sự bên trong của hàm ẩn với người dùng. Chúng chỉ tương tác với chức năng bên ngoài. Chúng ta có thể khai báo Abstract Classes bằng cách sử dụng từ khóa trừu tượng. Có khả năng một Abstract Classes có thể có hoặc không có các phương thức trừu tượng.

Các phương thức trừu tượng là những phương thức được khai báo mà không cần thực thi. Các phương pháp cụ thể hoặc phương pháp bình thường được khai báo cùng với việc thực hiện. Một Abstract Classes có thể chứa cả hai loại phương thức, nhưng một lớp bình thường không được phép có các phương thức trừu tượng.

Các bài viết liên quan:

Chúng ta không thể tạo thể hiện của một Abstract Classes có nghĩa là nó không thể được khởi tạo. Nó chỉ có thể được mở rộng bởi lớp con và lớp con phải được cung cấp khả năng cấy ghép các phương thức trừu tượng có trong lớp hiện tại. Khi đó cần phải khai báo lớp con trừu tượng.

Quy tắc cho Abstract classes:

Các quy tắc của phần tóm tắt được đưa ra dưới đây.

  1. Một Abstract Classes có thể có một phương thức trừu tượng (phương thức không có thực thi) hoặc không.
  2. Nếu có ít nhất một phương thức trừu tượng, thì lớp đó phải được khai báo là trừu tượng.
  3. Đối tượng của Abstract Classes không thể được tạo, nhưng nó có thể được mở rộng.
  4. Một từ khóa trừu tượng được sử dụng để khai báo Abstract Classes.
  5. Một Abstract Classes cũng có thể bao gồm các phương thức bình thường hoặc cụ thể (phương thức với phần thân).
  6. Tất cả các phương thức trừu tượng của lớp cha phải được thực hiện trong lớp con.

Khai báo Abstract Classes

Một từ khóa trừu tượng theo sau là tên lớp được sử dụng để khai báo Abstract Classes. Một Abstract Classes chủ yếu được sử dụng để cung cấp một cơ sở cho lớp con để mở rộng và triển khai phương thức trừu tượng.

Cú pháp:

Abstract Classes ClassName {   
 // Nội dung của Abstract Classes  
}  

Sử dụng Abstract Classes

Giả sử chúng ta có một lớp Person có phương thức displayInfo () , và chúng ta phải các lớp con của nó là Boy and Girl . Thông tin của mỗi người khác nhau so với người kia, vì vậy không có lợi ích gì khi triển khai displayInfo () trong lớp cha. Bởi vì mọi lớp con phải ghi đè phương thức của lớp cha bằng cách cung cấp phương thức triển khai của chính nó. Do đó, chúng ta có thể buộc lớp con cung cấp việc triển khai cho phương thức đó, vì vậy đó là lợi ích khi làm cho phương thức trở nên trừu tượng. Chúng tôi không yêu cầu triển khai give trong lớp cha.

Hãy hiểu tình huống trên thông qua đoạn mã sau.

Ví dụ:

abstract class Person {
  // khai báo phương thức trừu tượng
  void displayInfo(); // phương thức trừu tượng
}

class Boy extends Person {
// Phương thức ghi đè
  void displayInfo() {
    print("Tên tôi là Boy");
  }
}

class Girl extends Person {
// Phương thức ghi đè
  void displayInfo() {
    print("Tên tôi là Girl");
  }
}

void main() {
  Boy b = new Boy(); // Tạo đối tượng của lớp Boy
  Girl g = new Girl(); // Tạo đối tượng của lớp Girl

  b.displayInfo();
  g.displayInfo();
}

Đầu ra

Tên tôi là Johnathon

Tên tôi là Grecia

Giải trình:

Như chúng ta thấy rằng trong đoạn mã trên, chúng ta đã triển khai phương thức trừu tượng trong hai lớp con theo yêu cầu của nó và sau đó chúng ta gọi phương thức displayInfo () bằng cách sử dụng đối tượng của cả hai lớp.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now