どこがprotectedうーん。Bar.newx.foo上のプログラムは動く(1.8.7、1.9.1とも)。いうことは、protectedは継承クラスでは維持されないということなんだろう。そこで次のように変えてみる。Bar.newx.foo確かに、そうであって欲しい動作を得られる。(NoMethodError)or)そこでメソッドbooをFooに追加する。Foo.newx.boo(Foo.new)x.boo(Bar.new)実行する。`<main>'うーむ。最初の例から、protectedは継承されないから継承クラスでprotectedを付けた。すると継承元クラスからの呼び出しもできなくなる。レシーバを指定したいからprivateではなくprotectedにしているのだから、これはどちらかがおかしくはないか(というよりも、継承先で呼び出しが可能なメソッドをprotectedと称するということなんだろうなぁ、きっと)。おれにとっては、継承先にprotectedが引き継がれることが自然だと思うが、Rubyの考え方ではかくあるのだろう。