Developing programs in Eiffel is meant to
be primarily a matter of modeling,
that is designing classes and the
(inheritance) relations between classes.
An essential ingredient of class development
is the design of appropriate interfaces.
Rename and/or redefine
class C export ... inherit
A rename m as m1 redefine p
B rename m as m2 redefine q
slide: Eiffel -- techniques
To define a class as (derived from) a combination
of classes, Eiffel allows both the renaming
and redefinition of inherited features.
In [Meyer88], many practical hints are given and
employing these mechanisms.