永井@知能.九工大です. 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