Когда абстрактный класс лучше интерфейса, почему все на интерфейсах не делать?
Это сугубо моё мнение...
Всегда был уверен, что, главным образом, абстрактный класс это про абстрактные сущности, а интерфейс про декларацию возможностей и это во многом определяет применение. Например, 'животное' это абстракция, в природе в чистом виде не существует (хотя, зная некоторых людей, это спорно=) оно может быть представлено различными реальными сущностями. Можно описать поведение абстрактного 'животного' через интерфейсы. Но вот со свойствами будет сложно.