けいじゅ@SHLジャパンです. 

In [ruby-list :02635 ] the message: "[ruby-list:2635] Re: class design
(Re: url escape) ", on Apr/05 16:54(+0200) matz / caelum.co.jp (Yukihiro
Matsumoto) writes:

>さて,既に指摘がある通り,この例にはちょっと問題があります.
># 数学的な題材を選んだのがまずいのか….

>しかし,いわんとしていることはサブタイピング(仕様の継承)とサ
>ブクラシング(実装の継承)があるということで,これは確かに意味
>のある分類です.んで,rubyではサブタイピングは全く重視してい
>ません.

実装の継承にも2種類あって, 

1. 構造(属性)の継承
2. 機能の継承

があると思います. Circle->Ellipseの継承では構造は継承している(属性が1
つ付加されている)が機能に関してはは全くの作り直しになるというところに
問題があるのでしょう.

In [ruby-list :02631 ] the message: "[ruby-list:2631] Re: class design
(Re: url escape) ", on Apr/05 15:32(+0200) MAEDA Shugo
<ender / pic-internet.or.jp> writes:

>|原さんもいわれているように実際に作ってみれば気づくことですが:
>
>確かに例はちょっと悪いですね。
>たぶん実際にメソッド等を実装することは考えてなくて、直径、と長径、短径
>というメンバしかないクラスを考えているのでしょう。(苦しいフォロー)

先ほど話しましたがその通りでしょうきっと. 確かに属性は継承しています.

>あと思ったのは、rubyだと変数に型がないおかげで多態の恩恵を得るために
>継承をしなくても済みますよね。
>変数に型がある言語で、しかも単一継承だと、委譲で多重継承をエミュレー
>トしても多態の恩恵を受けられずに困りますけど、rubyならMix-inでうまく
>いく。

ですね.

松本氏が:

>しかし,いわんとしていることはサブタイピング(仕様の継承)とサ
>ブクラシング(実装の継承)があるということで,これは確かに意味
>のある分類です.んで,rubyではサブタイピングは全く重視してい
>ません.

と, 堂々といえるのは mix-inがあるおかげでしょう. 

>rubyのmodule+Mix-inとJavaのinterfaceはどちらも多重継承に対する解答です
>けどまったく逆になっていて面白いですよね。

この辺り Java の interface に関して松本氏には一言あるみたいなので, 語っ
てもらいたいですね. 

__
.....................................石塚 圭樹@SHLジャパン(株)...
------------->アドレス変わりました!! e-mail: keiju / shljapan.co.jp <----