Mixin
a Mixin is a way to reuse code across multiple classes without using traditional inheritance. (Represents has-capabilities, and cannot have constructors)
mixin Runner {
void run() {
print("Running fast!");
}
}
class Animal {}
class Dog extends Animal with Runner {}
void main() {
Dog d = Dog();
d.run(); // Output: Running fast!
}
mixin Flyer {
void fly() => print('Flying in the sky');
}
mixin Swimmer {
void swim() => print('Swimming in water');
}
class Duck with Flyer, Swimmer {}
void main() {
Duck d = Duck();
d.fly();
d.swim();
}