Besides providing practical design patterns, our discussion demonstrates that asking for multiple inheritance in Java is not a good idea given that more powerful, dynamic alternatives are available. If the language should ever be extended to support conflict resolution, support for multiple delegation would be preferrable to adding multiple inheritance.
Similarly to Section
,
meta-level techniques can be used for simulating multiple inheritance
and delegation
[2].
However, these exhibit the same shortcomings with respect to type-checking and
performance. Therefore we have confined ourselves to non-reflective
approaches for approximating delegation and multiple inheritance.