Mixin理解
2020-01-06 本文已影响0人
sssong_2017
在学习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