"spir" <denis.s...@free.fr> wrote
OK, bad example. But assume I have the same method in both classes and
want to call the method in the parent.
That should not happen! Basic contract is: same name = same meaning.
Nope, its called polymorphism.
The semantics may be the same but the implementation detail may differ
and more specifically the child implementation is likely to be a slight
change on the parent. Its the calling of the parent code that keeps the
essential semantics consistent.
Either you implement a method in a parent class to let all instances
of child classes use it;
Thats what he is doing, except that in the overriding metjod he wants
to reuse the inherited functionality.
Having two methods with the name that both need two be used
on the same object is clearly a design flaw. What do you think?
Two methods only one message. It is what polymorphism is all about.
The only case is when the parent method performs a part of
what child class methods have to do.
Exactly and in my experience of OO inheritance thats what happens
most of the time.
Think:
foo.draw(), save(), write(), print(), copy(), read(), move(), etc
All of these operations will likely use the superclass functionality
and add a little bit of local processing for any attributes in the
child class.
--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor