Classes can inherit from more than the single superclass from
which they were created. This is called
multiple inheritance. Classes designed
to add a set of instance and class
methods to other classes are called
mixin classes,
or simply mixins.
You can add mixin methods to an existing class by sending an INHERIT
message or using the INHERIT option on the
::CLASS directive.
In either case, the class to be inherited must be a mixin. During both class
creation and multiple inheritance, subclasses inherit both class and instance
methods from their superclasses.
Mixins are always associated
with a
base class, which is the mixin's first non-mixin
superclass. Any subclass of the mixin's base class can (directly or indirectly)
inherit a mixin; other classes cannot. For example, a mixin class created
as a subclass of the Array class can only be inherited by other Array subclasses.
Mixins that use the Object class as a base class can be inherited by any class.
To create a new mixin class, you send a MIXINCLASS message to an existing
class or use the ::CLASS directive with the MIXINCLASS option. A mixin class
is also an object class and can create instances of the class.