0Pricing
Dart Academy · 课时

base、interface 与 final 修饰符

控制其他代码如何扩展您的类

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

类修饰符

Dart 3 增加了用于控制他人如何复用类的修饰符。它们让库作者能够设置清晰且强制执行的边界。

base 修饰符

base 类可以被继承,但不能被实现。这能保证每个子类型确实继承您的真实实现。

base class Animal {
  void breathe() {}
}

为什么使用 base

使用 base 后,您可以确定所有子类型都共享您的具体代码,因此私有成员和不变量在整个继承层次结构中都能保持可靠。

接口修饰符

接口类可以被实现,但库外的代码不能从它继承。其他人只需遵守其结构,而不必使用您的代码。

interface class Logger {
  void log(String m) {}
}

为什么使用接口

接口修饰符非常适合定义契约。调用方实现您的方法签名,而您可以将具体实现保留为私有。

class FileLogger implements Logger {
  void log(String m) {}
}

final 修饰符

final 类在库外完全不能被继承或实现。这个类型会被彻底锁定。

final class Money {}

为什么使用 final

当一个类的行为绝不能被他人改变时,将其标记为 final。这样您可以自由改进它,而不必担心破坏子类。

base 向下传递

如果您继承了 base 类,您的子类也必须是 base、final 或 sealed。这个限制会沿着继承链向下传递。

base class Cat extends Animal {}

组合使用修饰符

您可以将 base mixin 等词语与其他修饰符组合,以细致调整复用规则。每种组合都表达了明确的意图。

base mixin Swimmer {
  void swim() {}
}

同一库中的自由

这些限制只适用于声明库的外部。在自己的包中,您可以按需要进行继承和实现。

选择合适的修饰符

契约使用接口,共享代码使用 base,想要完全锁定则使用 final。请选择仍然足够安全的最宽松规则。🧭

快速检查

快速检查类修饰符。

回顾

您已经学会:base 强制使用继承,接口强制使用实现,而 final 会同时阻止两者,从而让您能够控制复用方式。🔐

常见问题解答

「base、interface 与 final 修饰符」课时是免费的吗?

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

「base、interface 与 final 修饰符」这节课中我会学到什么?

控制其他代码如何扩展您的类 你通过在浏览器中直接运行的动手代码来练习 Dart Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Dart Academy 需要有经验吗?

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

「base、interface 与 final 修饰符」课时需要多长时间?

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

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

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

此课程中的所有课时

  1. final 字段与深度不可变性
  2. sealed 类与穷举式 switch
  3. base、interface 与 final 修饰符
  4. copyWith 与值相等
← 返回 Dart Academy