在學(xué)習(xí)Flutter過程中揭蜒,dart語言中的關(guān)鍵字Mixin是個(gè)新概念,本文列出兩個(gè)例子,希望讀者可以秒懂。
有Mixin A壳鹤,B, C
類X使用關(guān)鍵字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;
繼承關(guān)系如下:
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 {}
繼承關(guān)系:
image
另外對(duì)于關(guān)鍵字on的理解
Mixin A on X {}
意思可以理解為作用域饰迹, 也就是指Mixin A 只能被X或者X的子類或者X的實(shí)現(xiàn)類去with