a class with templated superclass -- it is used to add a set of methods to a given base class
a free-standing class extension function, describing a set of behaviours that may be combined with potentially many other classes
an abstract subclass that may be used to specialize the behavior of a variety of parent classes
a set of behaviors or functions defined within a module which can be included (mixed in) to a class
a way to override methods using multiple inheritance
A class¤ representing a specific property or behaviour¤, which can be added to existing classes¤ by means of multiple inheritance¤. Mixin¤ classes¤ are typically named with adjectives (for example, SelfLinking, Persistent, Clonable, etc.) denoting the property they confer.
In object-oriented programming languages, a mixin is a class that provides a certain functionality to be inherited by a subclass, but is not meant to stand alone. Inheriting from a mixin is not a form of specialisation but is rather a means to collect functionality. A subclass may even choose to inherit most or all of its functionality by inheriting from one or more mixins through multiple inheritance.