Dart的mixin机制
mixin是混入类,
一般在c++中利用abstract类来继承接口,但如果A类已经继承了某个abstract类,但还需要加另一个类里的方法怎么办?
dart中可以利用with 关键字混入其它类的方法直接使用/对其进行覆写后再使用
例子,这个类继承了BDLifecycleState,并且混入了BDNetPageMixin:
class LearnReminderState extends BDLifecycleState<LearnReminder> with BDNetPageMixin {
如果你愿意:可以同时混入多个类,比如class X extends y with a b c
如果abc中有冲突的方法,会以最后混入的为准。
定义被混入类可以和普通的class一样定义即可。但如果你只想某些类可以混入当前类,可以这样写:
mixin myMinxi on StatefulWidget{ void printt() => print('fuck'); }
这样myMixin类就只能被混入到StatefulWidget/继承于StatefulWidget的子类,别的类是不能混入的。
进击的小🐴农