Comme je l'ai déjà dit, la classe abstraite est intéressante du point de vue de la classe d'instance pour ce qui est du code générique.
Si on a différents scénarios qui impliquent des factorisations de code différentes, alors l'interface se justifie pleinement puisqu'on n'aura plus une classe abstraite mais plusieurs.
Par contre, s'il n'existe qu'un scénario, alors on n'en a pas besoin (même si dans un souci d'évolutivité future on pourrait quand même passer par une interface), c'est aussi simple que ça.