Dart:Dart 中的实现和扩展有什么区别

森口万*_*万太郎 4 dart flutter

https://dart.dev/guides/language/language-tour#implicit-interfaces

我见过使用“实现”的代码,所以我正在研究“实现”。但我无法通过查看官方文档来真正区分与扩展的区别。

查看官方文档(上页)中的示例代码,看起来它只是在执行使用 extends with Implements 可以执行的操作。然后我想知道是否应该使用“extends”。我想到目前为止我已经了解了继承(扩展)和混合(与)。Dart 文档中也提到了“接口”这个词,但是对于“接口”有明确的定义。我什至找不到它在哪里。我对其他语言的界面了解不多,所以很难得到图像。

继承和实现之间到底有什么区别?由于差异,什么时候使用继承“extends”,什么时候使用实现“implements”?

样本中是否存在明显差异的地方?

Nic*_*cer 10

给定班级MyClass

  • MyClass extends Foo是经典的传承。MyClass是一个Foo
  • MyClass implements Bar声明实现者符合接口BarMyClass“看起来”像一个Bar
  • MyClass with Batz是在接口和实现上“混合”。MyClass“行为”就像一个Batz.

MyClass可以根据需要实现和混合任意多个接口(存在一些限制),但只能从一个接口扩展。