I know that an interface does not have a body, just a method definition. But when should I use interfaces? If I provide someone a set of interfaces with no body, why would they feel a need to write the function body? Would they be better off writing their own abstract class with abstract methods in it?
The way I understand interfaces is that they could be useful when you are a part of a team. Suppose Team A writes some code for something and they wanted to see if a call to a method getRecords() is done or not. This will help Team B to write the body of the interface provided to them and Team B has to keep the method name similar so that code of Team A runs.
As far as I can tell, interfaces don't appear to be useful for individual developers.
Maybe interfaces have more use when you are making something like API?