継承は、言うまでもなくオブジェクト指向プログラミングにおける最も有用な概念のひとつである。 クラスと呼ばれる属性と振る舞いの集合体を生成し、生成したクラスに基づいて新たなクラスを生成することができるという、コードを区分し、再利用するための仕組みである。 しかし、あまりに深い継承ツリーを作ることはこの概念の間違った使い方であり、複雑で保守のできないソースコードを生み出してしまうことになる。

ほとんどの場合、深すぎる継承ツリーは間違ったオブジェクト指向設計の結果であり、実際には「合成(composition)」を使うべきところを、機械的に「継承(inheritance)」を使ってしまっている。