From: Sean DeNigris Date: 2010-02-02T00:15:09+09:00 Subject: Re: Inheritance related problem This is probably the same as what Rick was saying... If you own Parent, then the method I showed is definitely not what you want to do. And, the solution does not require a special Ruby way, just a refactor: class Parent def printa arg puts "inside parent printa #{arg} " > task_b arg #<-- problem solved, Parent#printa will always use the same version of printb end def printb arg > task_b arg #<-- delegate work to an extracted method end >private > def task_b arg # Original implementation of Parent#printb is private helper method > puts "inside parent printb #{arg} " > puts "--> #{arg} " > end end Output: parent calls with 5 and 6 inside parent printa 5 inside parent printb 5 --> 5 === child calls with 7 === inside child printa 7 reduced 1 inside parent printa 6 inside parent printb 6 --> 6