0Pricing
Dart Academy · 课时

隐式接口和 implements

将任意类视为接口

隐式接口和 implements 是 CoddyKit 上的免费 Dart Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Dart Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Dart Academy 课程共包含 4 节课。

每个类都是一个接口

在 Dart 中,每个类都会默默定义一个隐式接口:也就是它的所有公共方法和获取器的完整集合,其他类可以承诺提供这些成员。

实现与继承的区别

使用继承时,您会继承代码。使用实现时,您只采用其形状,必须自己重新编写每个成员。

class Robot implements Greeter {}

一个简单的接口来源

任何普通类都可以充当接口。在这里,Greeter 定义了一个供其他类实现的方法。

class Greeter {
  String greet() => 'Hi';
}

实现接口

当您实现一个类时,它的任何代码都不会被带过来。您要为它声明的每个成员提供全新的主体。

class Robot implements Greeter {
  String greet() => 'Beep';
}

必须全部提供

即使漏掉一个成员,也会产生编译错误。实现要求提供完整的接口,不能依靠继承来走捷径。

class Robot implements Greeter {} // error: greet missing

实现多个接口

类可以通过用逗号列出多个接口来同时实现它们,一次获得所有接口的形状。

class Robot implements Greeter, Logger {}

将抽象类作为接口

纯抽象类非常适合作为接口。它们只声明签名,因此实现者完全不会继承任何代码。

abstract class Greeter {
  String greet();
}

接口加继承

您可以同时结合两者:使用继承从一个类获得其代码,并使用实现从其他类获得它们的形状。

class Robot extends Machine implements Greeter {}

针对接口进行类型声明

类实现 Greeter 后,您就可以将它存储在 Greeter 类型的变量中,并调用 greet,而无需知道具体类型。

Greeter g = Robot();
print(g.greet());

接口保持解耦

由于实现不会复制任何行为,您的类仍然独立于原始类。您可以自由修改接口来源,而不会继承它的错误。

字段会成为获取器

接口中的字段会表现为一个获取器要求。您可以用真实字段或计算属性获取器来满足它。

class Robot implements Named {
  final String name = 'R2';
}

快速检查

关于实现接口的一个小问题。

回顾

每个类都会公开一个隐式接口。使用实现来采用它的形状,重新实现每个成员,还可以一次组合多个接口。🔌

常见问题解答

「隐式接口和 implements」课时是免费的吗?

是的 — 「隐式接口和 implements」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Dart Academy 课程的其余内容,请升级到 CoddyKit PRO。 Dart Academy 课程共包含 4 节课。

「隐式接口和 implements」这节课中我会学到什么?

将任意类视为接口 你通过在浏览器中直接运行的动手代码来练习 Dart Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Dart Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Dart Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「隐式接口和 implements」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Dart Academy 课中编写并运行代码吗?

能。每节 Dart Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 抽象类和抽象方法
  2. 隐式接口和 implements
  3. 通过共享类型实现多态
  4. 优先使用组合而非继承
← 返回 Dart Academy