混入 3个月前

编程语言
744
混入

混入 (mixin) 是在类的多继承中复用类代码的一种方式。

要“使用”混入,使用 with 关键词跟着一个或多个混入的名字。下面的例子展示了两个使用混入的类:

class Musician extends Performer with Musical {
  // ···
}

class Maestro extends Person
    with Musical, Aggressive, Demented {
  Maestro(String maestroName) {
    name = maestroName;
    canConduct = true;
  }
}

要实现一个混入,创建一个类继承 Object,不声明构造函数。除非你希望 mixin 可用作常规类,否则请使用 mixin 关键字代替 class。比如:

mixin Musical {
  bool canPlayPiano = false;
  bool canCompose = false;
  bool canConduct = false;

  void entertainMe() {
    if (canPlayPiano) {
      print('Playing piano');
    } else if (canConduct) {
      print('Waving hands');
    } else {
      print('Humming to self');
    }
  }
}

要指定只有某些类型可以使用这个混入——比如,这样你的混入就可以调用它没有定义的方法——使用 on 来指定所需的父类:

mixin MusicalPerformer on Musician {
  // ···
}

版本说明:对于 mixin 关键词的支持在 Dart 2.1 中被引入。之前版本的代码通常使用 abstract class 代替。要了解更多关于混入在 2.1 中的改变,请参阅 Dart SDK 变更日志2.1 混入规范

image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2222925
累计阅读

热门教程文档

Swift
54小节
Redis
14小节
CSS
33小节
Vue
25小节
Maven
5小节