Dart专题

dart: mixin

2021-09-06  本文已影响0人  李小轰

最近用到了Mixin,记录一下使用特性:

Mixin可以理解为另辟捷径的多继承实现。与单继承兼容,是继承能力的一种增强工具。

特性1:父类约束

当声明一个 mixin 时, on 后面的类是使用 这个mixin 的父类约束。一个类若是要 with 这个 mixin,则这个类必须继承或实现这个 mixin 的父类约束



需要添加继承父类约束:

class Child extends Super with MyMixin{}
特性2:就远命中原则

当继承多个mixinmixin内重写覆盖了同一个方法,则调用方法时会命中最后withmixin对方方法。

class Super {
  void log() {
    print("super.log");
  }
}

mixin MyMixin on Super {
  void log() {
    print("MyMixin.log");
  }
}

mixin MyMixin2 on Super {
  void log() {
    print("MyMixin2.log");
  }
}

class Child extends Super with MyMixin, MyMixin2 {}

void main() {
  new Child().log();
}

打印结果为:
MyMixin2.log

上一篇下一篇

猜你喜欢

热点阅读