含义:对象中的一个类,提供了方法的实现。其他类可以访问mixin的方法, 变量而不必成为其子类。
创建: mixin Animal { walk(){} }
使用:class Bird with Animal {
@override
void walk(){
}
}
由来:在某些情况下,一个类希望直接复用之前类的原有是实现方案,怎么做呢?使用继承吗?
但是Dart只支持单继承,那么意味着你只能复用一个类的实现。
Dart提供另外一种方案:Mixin混入的方式。(implements实现某个类时,类中所有的方法都必须被重新实现)
mixin Animal {
void eat(){
}
}
mixin Bearth{
void hea(){
}
}
class Person with Animal,Bearth {
}
mixin的线性化
如果某个类混入了多个类,多个类中有相同的方法,那么调用该相同的方法具体会调用哪个类中的方法呢?
情况一:如果当前类重写了该方法,则调用当前类中的方法
情况二:如果当前类没有重写该方法,那么会调用距离with关键字中最远的类中的方法。
Flutter mixin混入
最新推荐文章于 2024-03-09 17:30:41 发布