“interface”关键字是否从 Dart 中删除了?

问题描述 投票:0回答:3

可以肯定的是,Dart 现在是否已删除显式定义

interface
,转而通过
abstract
隐式定义它?

我在Dart和接口隔离原则中看到了它,但是我也发现很多内容仍然引用显式定义,例如何时在Dart中使用接口?

class interface dart abstract definition
3个回答
27
投票

是的。接口关键字已从 Dart 中删除。相反,所有类都有隐式接口。因此,如果你想定义一个接口,你可以使用抽象类来代替。

请参阅 2012 年关于消除接口关键字的博客文章


5
投票

请注意,接受的答案不再正确。

Dart 3 重新引入了

interface
关键字。请参阅此处:https://dart.dev/language/class-modifiers#interface

其语义与您对 Java 等其他语言的背景所期望的不同:在 Dart 中,这只是一个类修饰符,确保其他文件中的代码(= Dart 中的“库”)不能扩展此类,但必须完整地实现它(或者是抽象的)。

要获得类似 Java 的“纯”接口,请使用

abstract interface


0
投票

使用interface修饰符允许类在implements子句中使用,但阻止它在extends中使用。

它被重新引入,但我认为是在不同的背景下。您可以查看以下链接了解更多详情。

接口修饰符用例

© www.soinside.com 2019 - 2024. All rights reserved.