Dart 抽象类

2025年3月17日 | 阅读 3 分钟

抽象类是 Dart 中具有一个或多个抽象方法的类。抽象是数据封装的一部分,其中函数的实际内部工作对用户隐藏。它们仅与外部功能交互。我们可以使用 abstract 关键字声明抽象类。抽象类可以有抽象方法,也可以没有抽象方法。

抽象方法是那些没有实现就声明的方法。具体方法或普通方法是带有实现声明的。抽象类可以包含这两种类型的方法,但普通类不允许有抽象方法。

我们不能创建抽象类的实例,这意味着它不能被实例化。它只能被子类继承,并且子类必须为当前类中存在的抽象方法提供实现。那么有必要声明抽象子类。

抽象类的规则

下面给出了抽象类的规则。

  1. 抽象类可以有抽象方法(没有实现的方法),也可以没有。
  2. 如果至少有一个抽象方法,则该类必须声明为抽象。
  3. 不能创建抽象类的对象,但可以被继承。
  4. 使用 abstract 关键字声明抽象类。
  5. 抽象类还可以包括普通方法或具体方法(带有主体的方法)。
  6. 父类的所有抽象方法都必须在子类中实现。

声明抽象类

使用 abstract 关键字后跟类名来声明抽象类。抽象类主要用于为子类提供一个基础,以便继承和实现抽象方法。

语法

抽象类的使用

假设我们有一个名为 Person 的类,它有一个方法 displayInfo(),并且我们有它的子类 BoyGirl。每个人的信息都与其他人的信息不同,因此在父类中实现 displayInfo() 没有任何好处。因为每个子类都必须通过提供自己的实现来覆盖父类方法。因此,我们可以强制子类为该方法提供实现,这就是使方法抽象的好处。我们不需要在父类中给出实现。

Dart Abstract Classes

让我们通过以下代码理解上述场景。

示例 -

输出

My name is Johnathon
My name is Grecia

说明

正如我们在上面的代码中看到的,我们根据其要求在两个子类中实现了抽象方法,然后我们使用两个类的对象调用了 displayInfo() 方法。


下一个主题Dart 接口