多重継承の問題と言語ごとの解決策に関する話を書いてみました。 ただ、 Ruby 好きのため、若干 Ruby よりの記述になっています。 多重継承の問題と Object クラス 多重継承で問題になるのはメソッド名などが重複した場合です。 特にダイヤモンド継承(ひし形継承)と呼ばれる共通の祖先を持つクラスの継承では、 必ずメソッド名の重複は起こりますし、どっち経由の祖先のメソッドかわからなくなります。 多重継承が許されている言語としては C++ や Python などがあります。 C++ では virtual な継承を使ったり、 Python では書いた順でメソッドの優先度を決めたり といった方法で共通祖先の継承をできるようしています。 しかし、どのメソッドを使うかの問題が解決しても、 共通のメンバー変数(属性)を別々のクラスのメソッドから入り乱れてアクセスすることになり、 不測の問題を引き起