Итак, я понял, что интерфейсы - это способ обеспечить реализацию объектами определенной функциональности без использования наследования. Вроде как контракт. И я частично вижу в них смысл.
Но если все, что у вас есть в интерфейсе, это:
public interface animal{
void eat(object food);
}
и у него нет реализации как таковой, то всякий, кто использует ваш интерфейс, должен каждый раз писать его с нуля.
Если вы создаете несколько классов, реализующих такие функции, и реализация лишь немного отличается, это будет большой тяжелой работой.
Любая помощь, которая поможет мне разобраться в этом, приветствуется, потому что я знаю это действительно важно.