Dart 教程 目录

Dart 实现接口

在 Dart 中,接口(interface)是一个类或对象应该实现的方法的集合。虽然 Dart 没有显式的“接口”关键字,但你可以通过抽象类(abstract class)或者使用 implements 关键字来实现类似的功能。

抽象类

抽象类是不能被实例化的类。它们通常用于定义子类应遵循的公共方法。抽象类可以包含抽象方法和具体方法。抽象方法是没有方法体的方法,需要在子类中实现。

创建抽象类

下面是一个简单的抽象类 Animal

实现抽象类

创建一个具体的类 Dog,并实现抽象类 Animal 中的 makeSound 方法:

使用抽象类

创建一个 Animal 对象,并调用其方法:

接口与 implements 关键字

虽然 Dart 没有单独的接口关键字,但是通过使用 implements 关键字,你可以让一个类实现一个或多个其他类的功能。

定义一个接口类

首先,定义一个接口类 Printable,其中包含一个 printInfo 方法:

类实现接口

创建一个 Person 类,并通过 implements 关键字实现 Printable 接口:

使用接口

创建一个 Person 对象,并调用其方法:

多个接口实现

Dart 允许一个类同时实现多个接口。这在需要组合多个功能时非常有用。

定义多个接口

定义两个接口类 PrintableRunnable

类实现多个接口

创建一个 Runner 类,它实现了 PrintableRunnable 两个接口:

使用多个接口

创建一个 Runner 对象,并调用其方法:

接口与鸭子类型

Dart 是一种动态类型语言,这意味着它更倾向于使用鸭子类型(duck typing),而不是严格的接口。如果你有一个对象,只要它实现了某个方法,那么你就可以调用这个方法。

鸭子类型示例

假设我们有一个函数,它期望一个具有 printInfo 方法的对象:

你可以传递任何实现了 printInfo 方法的对象给这个函数:

在这个例子中,Car 类并没有明确地声明它实现了 Printable 接口,但它确实实现了 printInfo 方法,所以它可以被当作 Printable 类型使用。

通过这种方式,Dart 的灵活性允许你编写更具通用性的代码,而不需要严格遵循接口的概念。

以上就是 Dart 中实现接口的相关内容。通过抽象类和 implements 关键字,你可以轻松地为你的类定义一组方法,这些方法可以在多个类中共享和重用。希望这一章对你理解 Dart 的接口实现有所帮助。


上一篇:Dart 中隐式接口
下一篇:Dart 创建 List 对象
纠错
反馈