Ruby の private メソッドは継承先からでも呼び出すことができる
Ruby の private メソッドは『レシーバをつけて呼び出すことができない』という仕様です。
逆にいえば、『レシーバをつけないで呼び出す事ができれば、定義したクラス以外からも private メソッドは呼び出す事ができる』ということになる。
例えば private メソッドを定義してるクラスを継承すれば、継承先で private メソッドを呼び出すことができる。
[コード]
class Base private def hoge :hoge end end class X < Base def test hoge end end X.new.test # => hoge X.new.hoge # Error: private method `hoge' called for #<X:0x000000012cec40> (NoMethodError)
Ruby こわい。