interfaceは外部の都合
abstractは内部の都合

外部から共通に呼び出したいならinterfaceを使うし
内部で共通の処理を持ちたいならabstractを使う

だからabstractクラスは外部に開放されるべきではない

だから多くの場合は外に見せるためにinterface作って
さらに内部の処理をまとめるためにabstractを作る