flutter开发从函数重载和调用关系理清楚mixin和extends混合使用的时候的继承关系

1. 重写onInit方法的写法,注意with后面多个mixin时的书写顺便,他们的顺序决定了调用关系也就是继承关系

2. 实际onInit调用关系,如下图所示,每个onInit方法的重载,都先调用了super.onInit();方法

从调用关系和写法上,我们可以得出他们之前的继承关系

DeviceDetailController <-- JPGeneralConvertMixin <-- JPPowerMixin <-- JPSensorMixin <-- RF433ConvertMixin <-- JPLightMixin <-- commonDeviceMixin <-- YaoKanAppleMixin <-- BaseDeviceController
首先调用自身的onInit方法 <-- 然后调用每个Mixin的onInit方法,多个Mixin时和书写顺序有关,写在最后的Mixin重写的onInit方法先被调用,也可以理解为多个Mixin时后面的Mixin是前面Mixin的子类 <-- 最后调用extends类的onInit方法

posted @ 2025-05-16 18:44  yongfengnice  阅读(20)  评论(0)    收藏  举报