Hi Binod, I think I know how to explain the difference. Hopefully if I've got it wrong others will jump in with corrections . An interface guarantees specific behaviour for an object. The implementation is how that behaviour is achieved. For example, suppose you were writing a program that handled various household appliances: TV, stove, radio. All of these objects have On/Off switches so you know you want each object to provide On/Off behaviour. Exactly how each appliance turns itself from Off to On (the implementation) differs. (At least I think it does, an electrician may disagree ). To guarantee On/Off behaviour for all electrical appliances you could define an Interface OnOff:
Then build your class structure:
In essence, if a class implements an Interface, it guarantees that the behaviour defined by the interface will be available in the class. The interface defines what will happen, the actual implementing class has to provide the steps for how it will happen. Hope that helps.