如果混入的类里面有同名的方法,就是谁最后混入,调用的就是谁的方法,前面的会被后面的覆盖掉!
mixin使用
void main() {
var superMan = SuperMan();
superMan.run();
superMan.fly();
}
mixin Runner {
run() {
print("奔跑");
}
}
mixin Flyer {
fly() {
print("在飞翔");
}
}
// implements的方式要求必须对其中的方法进行重新实现
// class SuperMan implements Runner, Flyer {}
class SuperMan with Runner, Flyer {
}
class使用
void main() {
var superMan = SuperMan();
superMan.run();
superMan.fly();
superMan.sing();
}
class Runner {
run() {
print("奔跑");
}
}
class Flyer {
fly() {
print("在飞翔");
}
}
class Singer {
sing() {
print("在唱歌");
}
}
// 没有属性的时候可以简写为:
// class SuperMan = Runner with Flyer, Singer;
class SuperMan extends Singer with Runner, Flyer {
}