永井@知能.九工大です.

From: matz / ruby-lang.org (Yukihiro Matsumoto)
Subject: [ruby-dev:22199] Re: override private methods
Date: Wed, 10 Dec 2003 03:05:52 +0900
Message-ID: <1070993154.332015.15059.nullmailer / picachu.netlab.jp>
> ええと、サブクラスで同名のメソッドを定義した時、スーパークラ
> スのメソッドの可視性を継承すべきではないか、という話ですよね。
> 確かにそう思います。というかそうしてたような気がするんですが。

ruby 1.8.1 (2003-12-04) [i686-linux] でも
ruby 1.6.7 (2002-03-19) [i386-linux] でも同じだったので,
「誰も何も言わないということは私が間違っているに違いない」
と思ってました.(^_^;

こんな↓スクリプトで
-----------------------------------------------------------------
class A
  def foo
    p 'foo'
  end
  private :foo
end

class B < A
  def foo
    p 'FOO'
  end
end

B.new.foo
A.new.foo
-----------------------------------------------------------------
こんな↓結果になります.
-----------------------------------------------------------------
"FOO"
-:15: private method `foo' called for #<A:0x401bebd8> (NoMethodError)
-----------------------------------------------------------------

B#foo は private ではなく public になってしまっているようです.
-- 
                                         永井 秀利 (九工大 知能情報)
                                             nagai / ai.kyutech.ac.jp