From: Michael Sokol Date: 2011-11-27T18:50:16+09:00 Subject: Re: question about overloading --20cf300e50bd22b31a04b2b45058 Content-Type: text/plain; charset=ISO-8859-1 There is no way to overload a method in Ruby. That's in part due to Ruby being dynamically typed, and of "methods" being treated as "messages". Most of the time, you wouldn't need to overload a method because of the ducktyping nature of Ruby. Your method's argument can exhibit the same services no matter what their type is. If you want varying parameters for a method, you can use the splat operator (*). module Fox > class FXRegion > # Construct new empty region > def initialize; end > > # Construct new region copied from region _r_ (another FXRegion > instance). > def initialize(r); end > > # Construct new region from rectangle _rect_ (an FXRectangle > instance) > def initialize(rect); end > > # > # Construct rectangle region, where (_x_, _y_) are the coordinates > of the > # upper left-hand corner and (_w_, _h_) are its width and height. > # > def initialize(x, y, w, h); end > > # > # Construct polygon region from an array of points. Here, _points_ > is > # an array of FXPoint instances. > # > def initialize(points, winding=false); end In the example you provided, the methods are simply *overridden. *The only effective initialize method will be the last one. --20cf300e50bd22b31a04b2b45058--