美文网首页
Dart-Mixin详解

Dart-Mixin详解

作者: quteng | 来源:发表于2022-02-22 16:56 被阅读0次

在开始阅读此篇文章之前,我们可以先思考下如下问题:

1.什么是 Mixin ?
2.Mixin为什么会被设计出来,它解决了什么问题?
3.在 Mixin 被设计出来之前是如何解决此类问题?
4.Mixin 使用场景是什么?
5.Mixin 具体如何使用?

带着这5个问题再去阅读本篇文章,会让你对 Mixin 理解更加深刻。本篇文章主要理解Dart 中的 Mixin机制


image.png
  • Dart不支持多继承
  • 支持mixin,可以通过mixin 间接实现 多继承的功能
mixin之线性化

在上面的示例中,我们发现with关键字后有多个类。那么这里就产生了一个问题——如果with后的多个类中有相同的方法,那么当调用该方法时,会调用哪个类里的方法尼?由于距离with关键字越远的类会重写前面类中的相同方法,因此分为以下两种情况
1.如果当前使用类重写了该方法,就会调用当前类中的方法。
2.如果当前使用类没有重写了该方法,则会调用距离with关键字最远类中的方法。

例:

class Person {
  study() {
    print("学习");
  }
}

mixin Animal {
  eat() {
    print("吃");
  }

  run() {
    print("跑");
  }
}

class Man extends Person with Animal {
  run() {
    print("男人在跑");
  }
}

Man man1 = Man();
man1.run();

相关文章

网友评论

      本文标题:Dart-Mixin详解

      本文链接:https://www.haomeiwen.com/subject/zfawlrtx.html