Mixin理解

在学习Flutter过程中,dart语言中的关键字Mixin是个新概念,本文列出两个例子,希望读者可以秒懂。
有Mixin A,B, C
类X使用关键字with来继承Mixin里的方法或者属性

Mixin A {}
Mixin B {}
Mixin C {}
Class X  with A, B, C {}

等同于:

Class XA = X with A ;
Class XAB = (X with A) with B = XA with B;
Class XABC = ((X with A) with B) with C = XAB with C;

继承关系如下:


image

再比如

 Class X extends S with A, B, C {}

等同于:

Class SA = S with A;
Class SAB =  SA with B;
Class SABC =  SAB with C;
Class X extends SABC {}

继承关系:


image

另外对于关键字on的理解

Mixin A on X {}

意思可以理解为作用域, 也就是指Mixin A 只能被X或者X的子类或者X的实现类去with

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

推荐阅读更多精彩内容