我正在尝试这个想法:
void main(){
var actual = new Actual();
actual.notImplemented(); //I'd like it to print A, B C,
}
class A{
void noSuchMethod(Invocation inv){
print('A');
}
}
class B{
void noSuchMethod(Invocation inv){
print('B');
}
}
class C{
void noSuchMethod(Invocation inv){
print('C');
}
}
class Actual extends Object with A, B, C{}
此刻打印出来" C"但我知道你不能在mixin课程中调用super
,有没有人知道为什么mixins的行为是这样的?
答案 0 :(得分:4)
当您使用多个mixin(例如with A, B, C
)制作mixin应用程序时,它们会按顺序应用。这意味着Object with A, B, C
的超类是Object with A, B
,noSuchMethod
的{{1}}覆盖了来自C
和A
的混合。{1}}。