This is the mail archive of the
guile@cygnus.com
mailing list for the Guile project.
Re: A&S Footnote (Re: records)
On 24 Jul 1999 08:51:01 -0700, per@bothner.com wrote:
> Jost Boekemeier <jostobfe@linux.zrz.TU-Berlin.DE> writes:
>
> > Yes, multiple inheritance is complex (even in eiffel) so that java for
> > example avoids multiple inheritance completely and uses delegation
> > instead. And the inheritance graph can degenerate to something what
> > our class has called "object oriented spaghetti code".
>
> In O-O terminology "delagation" normally means inheritance through
> a chain of "parent" *objects*: A message that is not understood
> gets passed (delegated) to another object to handle. The point
> is that there are no classes or types, only objects. Self uses
> delegation, but neither Java, Smalltalk, CLOS, Simula67, or
> Eiffel use delagation.
>
> Java does *not* use delegation; instead it has multiple
> interface inheritance combined with single implementation inheritance.
Objective-C also uses delegation - and thereby avoids the horrors of multiple
inheritance. While it is theroetically true that 'the inheritance graph can
degenerate' to 'object oriented spaghetti code', this 'can' is a very
hypothetical one - it doesn't happen in practice.