I am going to describe some samples of their usage:
1- Interface : You need to inherit a class from multiple entities rather than one. As C# does not support the first one, You need to inherit from interfaces and only one class:
public class Test: Iinterface1, Iinterface2,class1
2- Interfaces are used in Web Services and WCF Services
3- Interfaces can not be implemented so they are just signatures to enforce hierarchies to implement a signature
4- Abstract classes are base classes(if implemented ) to let the hierarchy to have some functionality and may implement some of them themselves.
I hope it will help,