1) interface in User point of view.
interface is just like a button provided at front side of the TV set .it is a communication medium between you and the internal implementation of the button inside the TV for which it is intended.
you just need to know the feature of the interface(such as Contrast , brightness , volume buttons) and need to search for the class that has already implemented it in the API/somewhere else . And Just make use of that class in your program.
2) interface in developer point of view.
i will explain this with the following...
suppose that there are two developers satdown to develope some code to calculate the intrest of the balence of account.
Developer 1:
Just starts a class and he needed to know the balence of a perticular account. rather than going to create another method to get the balence, he just creates an interface called(say) as Intrest calculting Class with "getBal()' decreases the coheciveness of the class.
interface iBalanceEnquiry
{
public float getBalance(
String accountID);
}
this will be given to the 2 nd developer and Developer 1 says , see boss you need to develope a class that implements the iBalanceEnquiry.
Developer 2:
he understands the problem of the Developer1 and creates "class BalancePickup implements iBalenceEnquiry". in this he overriders method in the interface which takes accountID as parameter ,picksup the bal. availabel from database & returns inside the Developer 1's class where it is required...
Thus an interface is a contract between classes.