интерфейсы по сути нужны, что бы организовать работу большой группы разработчиков, которые могут вообще ничего не знать о существовании друг друга, и использовать практически любой язык программирования, так как есть только входные и выходные данные и черный куб (магический по центру)