菱形継承問題
Eiffel では、ディレクティブを改名して選択することでこの問題を回避する。すなわち、上位クラスのメソッドを下位オブジェクトが使うときは明示的に指定する。これによって基底クラスのメソッド群がサブクラス間で共有でき、個々のクラスが基底クラスの個別のコピーを持っているように見なせる。
Perl や Io では、継承するクラス群を順序リストで指定することで対処する。上述の例で言えば、クラス B の上位の方がクラス C の上位の前にチェックされるので、A のメソッドは B を通してのみ継承される。
2.1 以前の Python では、多重継承に対し、深さ優先-左から右の順でクラスのリストを生成する。Python 2.2 で導入され Python 3 では統一された、新スタイルクラスでは、全てのクラスは共通の基底クラス object から派生させるため、菱形継承への対処が重要になった。この時に同時に導入された順序は 2.2 でのみの採用にとどまったためここでは説明しない。Python 2.3 以降および Python 3 では C3(w:C3 linearization)が採用された。