title: When should one use interfaces?
body: <p>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?</p>
  <p>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 <code>getRecords()</code> 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.</p>
  <p>As far as I can tell, interfaces don't appear to be useful for individual developers.</p>
  <p>Maybe interfaces have more use when you are making something like API?</p>