implements对于抽象类,和之间有区别吗extends?我应该使用哪一个?在 Java 中,您可以使用实现来实现接口,但我发现 dart 没有接口,并且实现/扩展都可以工作。如果我想为我的 api 方法声明抽象类,我应该使用implements还是extends?
void main() {
User user = new User();
user.printName();
}
abstract class Profile {
String printName();
}
class User extends Profile {
@override
String printName() {
print("I work!!");
return "Test";
}
}
Run Code Online (Sandbox Code Playgroud)
jul*_*101 12
Dart 中的所有类都可以用作接口。类存在abstract意味着您无法创建该类的实例,因为它的某些成员可能未实现。
extends意味着您采用类已有的代码,然后在此基础上构建一个类。因此,如果您不重写方法,则可以从扩展的类中获取该方法。您只能从一门课程延伸。
implements意味着您只想采用类的接口,但要带有您自己的所有成员的实现。因此,您的类最终与另一个类兼容,但不附带任何其他类的实现。您可以实现多个类。
您没有提到的第三个选项是,mixin它允许我们实现多个mixin定义的类并将它们放入我们自己的类中。您可以在这里阅读有关它们的更多信息:https ://dart.dev/guides/language/language-tour#adding-features-to-a-class-mixins
| 归档时间: |
|
| 查看次数: |
6427 次 |
| 最近记录: |