🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
mixin是在多个类层次结构中重用类代码的一种方式。 要使用mixin,请在with关键字后面加上一个或多个mixin名称。下面的例子显示了两个使用mixin的类: ~~~ class Musician extends Performer with Musical { // ··· } class Maestro extends Person with Musical, Aggressive, Demented { Maestro(String maestroName) { name = maestroName; canConduct = true; } } ~~~ 要实现mixin,创建一个Object的子类,不声明构造函数,也不调用super。例如: ~~~ abstract class 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'); } } } ~~~ >注意:一些对mixin的限制要被删除。有关详细信息,请参见建议的[mixin规范]。 > 有关Dart中mixin的演化的理论介绍,请参阅[Dart中mixin的简史]。