Remove multiple inheritance in Python 3000
Diez B. Roggisch
deets at nospam.web.de
Tue Apr 22 13:06:52 EDT 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