Remove multiple inheritance in Python 3000

Diez B. Roggisch deets at nospam.web.de
Tue Apr 22 19:06:52 CEST 2008


Carl Banks schrieb:
> On Apr 22, 11:10 am, "Diez B. Roggisch" <de... at nospam.web.de> wrote:
>>> 2. Java interfaces solve a different problem than MI (used properly)
>>> does: interfaces are there to make types polymorphic, whereas
>>> inheritance's main use is to share behavior.
>> But the *goal* of the polymorphy is mainly to have shared behavior.
> 
> Not at all.  The goal of polymorphism is to have objects of different
> types usable in the same situation.  Two such classes might share some
> behavior, but they don't have to.

Of course they don't *have* to. Yet very often they do. But I should 
have (again) worded that more cautiously.

When doing Java, using interfaces like the ones found in the collection 
packages or e.g. HttpServletRequest and such usually leads to the 
delegation-pattern I described. The same for swing. Generally, a lot of 
code is written that declares first an interface & then some 
Impl-classes of that - for the sole purpose of working around the 
SI-caveats.

This shaped my viewpoint of interfaces - while on their own useful - as 
a necessary crutch to create a MI-like features, that I wanted to 
emphasize in this discussion.

Diez



More information about the Python-list mailing list