Generel ist das Interface der abstracten Klasse vorzuziehen, da du dadurch flexibler bleibst und hierarchische Abhaengigkeiten vermeidest (Mehrfachvererbung).
Wichtig ist das bei Vererbung die Klasse in denselben Aspect/Layer gehoert und nicht vermischt werden.
Model, Persistence, Security, Logging, GUI,... sollten untereinander nicht vermischt werden, vererbung innerhalb eines Aspects ist aber erlaubt.