前田です。

In message "[ruby-list:6323] Re: ruby's design policy (Re: I'd like to subscr ibe this ML)"
Yukihiro Matsumoto <matz / netlab.co.jp> wrote:

||そもそも,強い型付け + 静的型 + 単一継承 + interface な言語(うーん,
||Java しか知らない)で,モデルを維持したまま,実装を継承するのって,可能
||なんでしょうか?
|
|できると思いますよ.多重継承の代わりにMix-inをすればよいわけ
|ですから.fj.comp.oopsで前田さんがJavaにMix-inがあれば良いの
|にって発言してましたよね.もしJavaにMix-inを導入したとして,
|言語がそのぶん複雑になる以外には別に破綻しないと思います.

でも、rubyみたいに簡単に楽はできませんね。

module Enumerable
  ...
end

class Foo < Bar
  include Enumerable
  ...
end

をやろうとすると、

interface Enumerable {
   ...
}

module EnumerableImpl {
    ...
}

class Foo extends Bar implements Enumerable include EnumerableImpl {
    ...
}

どうせextendsでインターフェイスと実装の継承を分離していないん
だから、interfaceをなくして、moduleでインターフェイスと実装を
共に継承できるようにしても、moduleが抽象クラスであることさえ
保証されていればそれでいいような気もするのですが。
# とfj.comp.oopsで書くと猛烈に反対されそう(^^;

-- 
前田 修吾

P.S. まつもとさんのfjの記事ようやくこちらにも届きました。
     2日もかかるんですね...