小林です。

Re: [ruby-list:18769](まつもと ゆきひろさん投稿)

>
> 現状、すべてのオブジェクトはObjectのサブクラスのインスタンス
> なので、モジュールがインスタンスを持つと言うことは(現在の
> Rubyの仕様を変更しない限り)、そのMix-inモジュールがObjectの
> サブクラスになると言うことです。それは後者と矛盾します。
>

だんだん、つながってきたような...
「全てのクラスは唯一のObjectクラスから出発する。」ということを前
提にすると、根がひとつ(Object="アダム+イブ")なので、多重継承
では菱形になりやすい ==> 菱形にならないように単純継承しかでき
ないようにする。すると、今度はメソッド等がどんどん溜まってしまっ
て、全く使わないメソッドだらけになってしまう。そこで、子孫(サブク
ラス)によっては使われないかもしれないメソッドは、別途 module に
して封印する(インスタンスを持たない抽象クラス )。
子孫は困った時にだけ封印を解いて使用するか、更に何かを加えて
再度封印する(Mix-in以外のスーパークラスを持たない)というところ
でしょうか?

あと、Objectクラス自身が保有するメソッドなどの詳細について知り
たいのですが?
(ruby本の途中まできて、また最初から読んだりしているので、後半
に何が書いてあるのかよく把握していません。ペラペラめくってはい
ますが。)

小林 茂雄
E-Mail: shigeo / tinyforest.gr.jp
Home Page: http://www.tinyforest.gr.jp