I tend to think of an Interface as being a contract between an Object and the 'outside world'.
If an Object implements an Interface then it will provide those properties and methods defined by the interface.
A single object can implement multiple interfaces, which can be useful.
Multiple objects can implement a single interface, which can also be useful.
So, if I have two interfaces
The Interfaces will just tell the outside world that an object implementing the IDisplayYourselfOnScreen will have an implementatino of the method "Show()" and one of Hide(); and a property of Hidden;
An object implementing IMakeANoise will have a method MakeSound(int volume).
If my main program now deals with the Interface, it can safely call methods on any object implementing the Interfaces to make a noise or show themselves, without worrying about how that is implemented - indeed the implementation can be completely changed without the rest of the application needing to be changed.
So if you were writing a game, and had two objects colliding, your logic might be something like
public void Collision(IDisplayYourselfOnScreen object1)
if (object1 implements IMakeANoise)
Your object1 could be the player, an enemy, a tree, whatever, as it implements an interface you guarantee it will respond (in some way) to the methods defined in the interface.