##Won't work method #1 class Foobar private def foo; p "Foobar"; end end class Baz < Foobar def blah; foo; end end baz = Baz.new baz.foo ## Work method #2 class Foobar private def foo; p "Foobar"; end end class Baz < Foobar def blah; foo; end end baz = Baz.new baz.blah PickAxe2: If a method is private, it may be called only within the context of the calling objectÍÊt is never possible to access another object's private methods directly, even if the object is of the same class as the caller. So what happens in Method#2, why foo can be easily called, when called from inside the class Baz? I mean, that method foo should be still bound to instance baz...so in which context foo gets called in Method#2. -- There was only one Road; that it was like a great river: its springs were at every doorstep, and every path was its tributary.