Hi.
A class can have abstract methods and non-abstract methods.
But interfaces can only have abstract methods. Interfaces are always abstract, and you do not have to specify it.
Interfaces can only have static & final variables. An interface could extends many interfaces, but a class always inherits from another class and can implement severals interfaces.
An interface can be seen as a "view" for an instance, and offer you the way to handle objects without knowing his implementation.
Let see an example. In Java, you have events(clicks for example), they trigg messages, which are received by objects. An object has to be the type of "click receiver" if it wants to catch click messages. In fact, the real type is ActionListener, which is an interface. If ActionListener was a class, all the objects that want to receive clicks messages will have to inherit from that class, which is not really practical. That's why ActionListener is an interface, in order to add easily the corresponding features to any object no matter his class.
I hope this will help.
Bye. --
Globos