In message "[ruby-list:19024] Re: protected なメソッドの再定義"
    on 99/11/29, YAMASHITA Junji (山下 純司) <ys_jyunji / teleweb.or.jp> writes:

>以下のような場合に不都合があるということでしょうか?

ちょい違います。

  class Foo
    protected

    def identity
      "Foo"
    end

    public

    def print_id(x)
      print x.identity, "\n"
    end
  end

  class Bar<Foo
    protected

    def identity
      "Bar"
    end
  end

  foo = Foo.new
  bar = Bar.new

  bar.print_id(foo) #=> Foo
  bar.print_id(bar) #=> Bar
  foo.print_id(foo) #=> Foo

  foo.print_id(bar) #!! Error

これは Bar#identity が自分とそのサブクラスからしか呼べないた
めです。これに対する対処はあおきさんの書かれた方法がなどが使
えます。

-- gotoken