为什么Dart编译器在扩展抽象接口类时不会出错?

hk8txs48  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(100)

在学习Dart和阅读抽象接口类的官方文档时,我对它们的工作方式感到困惑。为什么一个抽象接口类可以被扩展而没有错误?
我试图通过确保抽象接口的实现是有效的,扩展抽象接口是无效的来验证我认为我理解的内容,但两者都是有效的。

void main() {
  MyClassImpl();
}

abstract interface class MyClass {
  int return4();
}

class MyClassExt extends MyClass {
  @override
  int return4() => 4;
}

class MyClassImpl implements MyClass {
  @override
  int return4() => 4;
}

Dartpad with the above code

hgqdbh6s

hgqdbh6s1#

回答我自己的问题,因为我错过了定义接口的重要部分。
接口可以实现,但不能扩展到它自己的库之外。所提供的样本均在同一个库中。

相关问题