我刚刚阅读了Dart语言规范并探索了一种新的有趣的语言。 As Dart language specification says:飞镖有implicit interfaces
。这意味着每个class
也是interface
。所以,如果我想实现另一个类的某些行为,implements
子句是我唯一需要的。飞镖中理解'实现'和'与'
另外,Dart支持mixins
。这样我们就可以使用with
关键字从另一个类实现方法。
因此,考虑到如果一个抽象类A定义的方法A(),如:
abstract class A {
void a();
}
和另外两个具体类B定义方法的(),但不实现类A等:
class B {
void a() {
print("I am class B");
}
}
类和C类实现A类与密新b类似:
class C extends Object with B implements A {
...
}
在这里,我有几个questio恩关于它。如果一个类实现了接口,并且使用具有相同方法名的方法实现的mixin;这不会使cycling inheritance
成为可能吗? class C
会怎样?它是否需要执行a()
或者它将由mixin B
隐含实施?
我只是学习飞镖和像mixin这样的概念对我来说很陌生。任何人都可以通过回答我的问题来帮助我理解吗?
希望你不介意,但修正你的样本是否正确Dart –
@ArgentiApparatus那么,如果我使用mixin使用with子句是那个类限制扩展Object?我在某处读过它,但没有明白。你能否详细说明一下你的编辑? –
您编写了'class C implements B with B {...}'正确的语法是'class Classname extends Mixinclass implements Interface {...}'扩展Baseclass。 *任何*课程可能会延长。虽然可以用作mixin的类有一些限制。我建议阅读关于课程的语言游览部分以便更好地理解 –