On Mon, Sep 15, 2003 at 09:29:50AM +0200, Robert Klemme wrote:
> "overloading" is the correct term.  "Redefinition" is used for sub class
> methods that introduce a new definition for method defined in a super
> class.

Actually, "redefinition" is a general term for defining a method which has
already been defined somehow; there are many possible ways to do this in
a dynamic language like Ruby.  In the specific case of a subclass defining
a method that is also defined in a superclass, the subclass method is
said to "override" the superclass method.  Thus we have two unfortunately
similar terms for very different things:

    Overloading: distinguishing methods based on arguments/signature

	Ruby 1 doesn't have this; C++ and Java do; Perl6 will, according
	to the current design.

    Overriding: hiding superclass methods with new implementations

	All O-O languages, including Ruby, have this.

-Mark