mixin小记

Dart 是不支持多继承的,但是它支持 mixin,简单来讲 mixin 可以 “组合” 多个类,如果多个mixin 中有同名方法,with 时,会默认使用最后面的 mixin 的,mixin 方法中可以通过 super 关键字调用之前 mixin 或类中的方法。

abstract class Configure {
  config() {}
}

mixin One on Configure {
  @override
  config() {
    print("up one");
    super.config();
    print("one");
  }
}

mixin Two on Configure {
  @override
  config() {
    print("up two");
    super.config();
    print("two");
  }
}

mixin Three on Configure {
  @override
  config() {
    print('up three');
    super.config();
    print('three');
  }
}

class Zero extends Configure with One, Two, Three {
  @override
  config() {
    super.config();
  }
}

void main(List<String> args) {
  Zero zero = Zero();
  zero.config();
}

// $dart test1.dart
// up three
// up two
// up one
// one
// two
// three
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 说明 Dart 是不支持多继承的,但是它支持 mixin,简单来讲 mixin 可以 “组合” 多个类,这样就极大...
    逃离_102阅读 461评论 0 1
  • 跟随《Flutter实战·第二版》[https://book.flutterchina.club]学习,建议直接看...
    QYCD阅读 360评论 0 0
  • 说是读书笔记但更像书摘,希望之后会根据自己实践多多补充,加入自己的体验。 dart 语言 Q:空安全,mixin ...
    树里的熊阅读 201评论 0 0
  • var 赋值的时候确定类型 后面不能更改类型Dynamic 可以接受任何类型 前面赋值一种类型 后面还可以修改类型...
    Lucky_1122阅读 312评论 0 1
  • Flutter 中的三种关系: 1、继承(关键字 extends) 2、混入 mixins (关键字 with) ...
    张_何阅读 310评论 0 0