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