Abstract class scenario and difference between interfaces.

Does anyone know in what exact situation one is supposed to declare a class as abstract?
How will I come to know the parameters that have been analyzed for a class to be abstract and how would I declare it abstract?
I would also like to know the difference between abstract class and interface.
