[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

A question (and answer) for the Ruby FAQ: override and overload

Stephan Kämper

1/24/2005 11:36:00 AM

Hi all,

before I go ahead and post my proposal directly to the FAQ site, I
though I'd better share the proposal here...

I tend to add this question, as it regularly is touched here in
discussions and questions:

What's with 'overloading' and 'overriding' methods in Ruby? And what's
the difference between them anyway?

What do you think about it? There were lengthy threads about it, e.g.
the one starting at ruby-talk 51156 with well over 150 postings...

Happy rubying

Stephan
2 Answers

Michael Neumann

1/24/2005 12:02:00 PM

0

Stephan Kämper wrote:
> Hi all,
>
> before I go ahead and post my proposal directly to the FAQ site, I
> though I'd better share the proposal here...
>
> I tend to add this question, as it regularly is touched here in
> discussions and questions:
>
> What's with 'overloading' and 'overriding' methods in Ruby? And what's
> the difference between them anyway?

Overloading usually means in C++ or Java:

void my_method();
void my_method(int arg);
void my_method(int arg, char* x);

I.e. static polymorphism based on method signatures (the matching method
is found at compile time, hence "static").
In Ruby, we don't have this kind of polymorhphism. Okay we can emulate
this using:

def my_method(*args, &block)
end

But, I don't count this.

Overriding is probably another term for "overwriting" a method. That's
simply if you redefine a method.

Regards,

Michael


Stephan Kämper

1/24/2005 1:06:00 PM

0

Michael Neumann wrote:
> Stephan Kämper wrote:
>
>> before I go ahead and post my proposal directly to the FAQ site, I
>> though I'd better share the proposal here...
>>
>> I tend to add this question, as it regularly is touched here in
>> discussions and questions:
>>
>> What's with 'overloading' and 'overriding' methods in Ruby? And what's
>> the difference between them anyway?
>
>
> Overloading usually means in C++ or Java:
>
> void my_method();
> void my_method(int arg);
> void my_method(int arg, char* x);
>
> I.e. static polymorphism based on method signatures (the matching method
> is found at compile time, hence "static").
> In Ruby, we don't have this kind of polymorhphism. Okay we can emulate
> this using:

Yes, I know that. I just suggested to have this question (and answer)
added to the FAQ. And I actually volunteer to do so. :-)

Happy rubying

Stephan