An interface is a contract: The person writing the interface says, "Hey, I accept things looking that way", and the person using the interface says "OK, the class I write looks that way".
An interface is an empty shell. There are only the signatures of the methods, which implies that the methods do not have a body. The interface can't do anything. It's just a pattern.
For example (pseudo-code):
// I say all motor vehicles should look like this:
// My team mate complies and writes vehicle looking that way
class Car implements MotorVehicle
Implementing an interface consumes very little CPU, because it's not a class, just a bunch of names, and therefore there isn't any expensive look-up to do. It's great when it matters, such as in embedded devices.