Dart,noSuchMethod如何使用mixins?

时间:2014-04-11 17:17:14

标签: dart mixins

我正在尝试这个想法:

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的行为是这样的?

1 个答案:

答案 0 :(得分:4)

当您使用多个mixin(例如with A, B, C)制作mixin应用程序时,它们会按顺序应用。这意味着Object with A, B, C的超类是Object with A, BnoSuchMethod的{​​{1}}覆盖了来自CA的混合。{1}}。