タグ

rubyと産業技術総合研究所に関するItisangoのブックマーク (1)

  • Javaの知られざる欠陥(下)

    最後に,複数のクラスの実装を継承できない問題を取り上げる。この問題の原因は,Javaが多重継承を許していないことにある。 Javaでは多重継承ができない。これは,デメリットと言うよりもメリットとして語られることが多い。C++は多重継承を許しているが,その結果プログラムが複雑になり難解なバグを生んだ。 多重継承は実装を引き継げるが複雑 多重継承は,次のような点で混乱を招く。一つが名前の衝突である。同じ名前のメソッドを持つ別のクラスを継承した場合,どちらのメソッドが呼び出されるかわからない(図5[拡大表示])。これは,一つのクラスを継承した二つのクラスを,さらに一つのクラスが継承するときによく起こる。これをダイヤモンド継承という(図6[拡大表示])。一番上位のクラスのメソッドを別々にオーバライドしていて,それを最下層のクラスが呼び出すと問題が起こる。 図5●同じ名前のメソッド名を持つ二つのスー

    Javaの知られざる欠陥(下)
  • 1