そもそも継承するってことは多態が必要ということなので
Dと似た振る舞い(この場合ばBのアルゴリズム利用の何らかの実装)をする
Eを継承したオブジェクトが他に存在すると考えるのが妥当

もっと言うとDやEを継承した他オブジェクトを保持したり扱ったりするクラスも他に存在するんだろう