First Look at Dart Mixins
You can use mixins to help inject behavior into your classes without using inheritance. Use a mixin when you have shared functionality that doesn't fit well in a is-a relationship. Dart supports a basic form of mixins as of the M3 release in early 2013. The language designers expect to expand on mixins' abilities in future versions of the language. Surprisingly, you've been using the concept of a mixin all along. Dart considers a mixin as the delta between a subclass and its superclass . That is, every time you define an is-a relationship with the extends keyword, you are really defining a delta between the new class and its parent class. In other words, a subclass definition is like a mixin definition. Given that short description, it should come as no surprise that an abstract class (with a few restrictions) is itself a mixin. Here is an example of a Persistance mixin: abstract class Persistence { void save(String filename) { print(