Dart语法 mixin和implement

300 阅读1分钟
  1. implement 如果运用到mixin可以不实现,如果用到class必须要实现全部方法
class MockContainerRenderObjectMixin{
  void add(int child) {
    print('add');
  }

  void addAll(List<int> children) {
    print('addAll');
  }
}

mixin MockRenderBoxContainerDefaultsMixin implements MockContainerRenderObjectMixin {

}

class TestC implements MockContainerRenderObjectMixin{
  @override
  void add(int child) {
    // no super.add
  }

  @override
  void addAll(List<int> children) {
    // TODO: implement addAll
  }

}
  1. 如果with了上面的mixin,需要implement缺失的方法.
class TestQ_Q with MockRenderBoxContainerDefaultsMixin{
  @override
  void add(int child) {
    print('TestQ_Q.add...');
  }

  @override
  void addAll(List<int> children) {
    // TODO: implement addAll
  }
}

参考代码: RenderFlex(RenderBoxContainerDefaultsMixin的implement由ContainerRenderObjectMixin来完成,不科学(⊙o⊙)?)