Mninawa,
Generally, interfaces define the interface of a set of classes, but provide no detail of how that implementation is realised. This purpose is commonly emphasised by name, such as IComparable and IEnumerable.
A class implements an interface by providing methods that implement all the methods in the interface. A class may implement multiple interfaces.
By contrast, an abstract class is a base class of another class - it may have realised members as well as abstract members. They are commonly used as part of a framework, where they provide a pattern of behaviour that is expected to be realised by a concrete class deriving from it.
For example, a class may provide the basic support for putting a window on the screen, but provide abstract or virtual methods such as Draw, that should be overridden by derived classes to customise the behaviour to a particular situation.
A class may only inherit from one base class however (in C#, Java, etc.).
Like Nishant, however, I'd strongly recommend learning more about this - the GOF Design Patterns book for example gives plenty of examples of when each may be appropriate.
Design Patterns[
^]