我正在阅读Dart语言规范并探索一种新的有趣语言。正如Dart语言规范所说:Dart具有隐式接口。这意味着每个类也是一个接口。因此,如果我想实现另一个类的某些行为,只需要使用“implements”子句。
此外,Dart支持混入。因此,我们可以使用“with”关键字从另一个类中获取方法的实现。
因此,假设抽象类A定义了方法a():
这里,我有几个关于它的问题。如果一个类实现了接口并使用混入,而混入具有与方法名称相同的方法实现; 那么它不会使得成为可能吗?
我刚开始学习Dart和诸如混入之类的概念对我来说非常陌生。 有人可以通过回答我的问题来帮助我理解吗?
此外,Dart支持混入。因此,我们可以使用“with”关键字从另一个类中获取方法的实现。
因此,假设抽象类A定义了方法a():
abstract class A {
void a();
}
另外两个具体的类B定义了方法a(),但没有实现类A,如下所示:
class B {
void a() {
print("I am class B");
}
}
类C实现了类A,同时使用Mixin B,示例如下:
class C extends Object with B implements A {
...
}
这里,我有几个关于它的问题。如果一个类实现了接口并使用混入,而混入具有与方法名称相同的方法实现; 那么它不会使得成为可能吗?
C类
的行为将是什么? 它需要实现或者它将由隐式实现吗?我刚开始学习Dart和诸如混入之类的概念对我来说非常陌生。 有人可以通过回答我的问题来帮助我理解吗?
class C implements A with B { ...}
,正确的语法应该是class Classname extends Baseclass with Mixinclass implements Interface{...}
。任何类都可以被继承,但作为混入类的类有一些限制。我建议阅读语言指南中关于类的部分以便更好地理解。 - Argenti Apparatus