From: matz@... (Yukihiro Matsumoto) Date: 1998-03-10T12:02:23+09:00 Subject: [ruby-dev:1639] Re: IO#putc/Kernel#putc/Kernel#putchar まつもと ゆきひろです In message "[ruby-dev:1638] Re: IO#putc/Kernel#putc/Kernel#putchar" on 98/03/10, Shugo Maeda writes: |前田です。 |Javaだと再定義されてもスーパークラスの他のメソッドから呼ぶ時は |元のメソッドが呼ばれるようになってますよね。 ええ,privateだとわかれば動的結合の必要がありませんから(サブ クラスから見えないということは絶対再定義されないから),コン パイラ型の言語ならコンパイル時にどのメソッドを呼ぶか決定でき ますね. rubyの場合はそのような静的な宣言が無いんで(メソッド定義すら 動的なので),そういうのが実現できないんですよね.多分,ruby の他の部分のアイディアを借りると「hiddenメソッドは名前を変え る」んでしょうけど,そこまでする必要はなさそう. |これができないとあまり意味がないですよね。 そう思います. |# 最近今更ながらMeyerの「オブジェクト指向入門」を読んだのですけど、 |# Meyerならfinalもprivateもどちらもダメと言いそうですね(^^; 手元にOOSCが無いので,記憶に頼っちゃいますが,Eiffelには final相当は確か存在します.freezeとか言ったのではないかと. 直接のprivate相当は無かったように思いますが,コンパイラが検 出するというような話の記憶が. まつもと ゆきひろ /:|)