Vererbung und DI sind zwei verschiedene Dinge.
Genau! Sie beschreiben zwei verschiedene Möglichkeiten zur effizienten Auflösung von Abhängigkeiten. Sie sind übrigens die Einzig effizienten Möglichkeiten die auf einen sauberen Programmierstil hinauslaufen. Aber auch nur wenn man sie verstanden hat.