What is the difference between interface and class?

An abstract class may contain complete or incomplete methods. Interfaces can contain only the signature of a method but no body. Thus an abstract class can implement methods but an interface can not implement methods.

You can not create an instance of an interface, hou have to create an instance of an object that implements the interface. With an interface you just define what an object can/must be able to do. You will use Interfaces when you want to use various objects in the same way.