Abstract and Interface is really a most heard topic I think, see below explanation about them.
In simple words, Abstract can not be instantiated, An abstract class is only to be sub-classed (inherited from). The advantage is that it enforces certain hierarchies for all the subclasses. In simple words, it is a kind of contract that forces all the subclasses to carry on the same hierarchies or standards.
Note, An interface is not a class, An interface has no implementation; it only has the signature or in other words, just the definition of the methods without the body, The main difference between them is that a class can implement more than one interface but can only inherit from one abstract class. Since C# doesn't support multiple inheritance, interfaces are used to implement multiple inheritance.
Thanks
Koolprasd2003
Editor, DotNetSpider MVM
Microsoft MVP 2014 [ASP.NET/IIS]