OK so I gather that Interfaces are a way to enforce that an object implements a certain amount of functionality, without having to use inheritance. Kind of like a contract. And I semi see the point of them.
But if all you have in the interface is:
public interface animal{
void eat(object food);
}
and it has no implementation as such, then whoever uses your interface has to write it from scratch, every time.
If you are creating a number of classes all implementing such features and the implementation is only slightly different, this is going to be a lot of hard work.
Any help to get my head around this is appreciated because I know it's really important.