You cannot create an object of abstract class , but can make derivations of this.
An abstract class can contain either abstract methods or non abstract methods. Abstract members do not have any implementation in the abstract class, but the same has to be provided in its derived class.
An abstract class can have abstract members as well non abstract members. But in an interface all the members are implicitly abstract and all the members of the interface must override to its derived class.
Defining an abstract class with all the abstract members is similar to defining an interface. i.e we can say an interface is an abstract class with all the abstract members
Interfaces are essentially having all method prototypes no definition but Abstract class can contain method definations also.
In short Interface is a abstract class having all methods abstract.
Both abstract classes and
interfaces are used when there is a difference in behaviour among the
sub-types extending the abstract class or implementing the interface.
When the sub-types behaviour is
totally different then you use an interface, when the sub-types
behaviour is partially common and different with respect to the
supertype an abstract class is used. In an abstract class the partially
common behaviour is given a concrete implementation. Since there is no
common behaviour between an interface and a sub-type an interface does
not have an implementation for any of its behaviour.
If you create a abstract class writing the abstract keyword in the
declaration part then You only can inherit the class. You can not
create an instance of this abstract class but can inherit the class and
with creating the instance of the derived class you can access the
method of the abstract class.
If you use a virtual keyword in a method then you can override this method in the subclass if you wish..
If you create a abstract method then you must override this method in the subclass other wise it shows error in the program.
Refer msdn difference for more info..
http://sadi02.wordpress.com/2008/05/08/what-is-difference-in-an-abstract-class-and-an-interface/
http://msdn.microsoft.com/msdnmag/issues/03/12/CQA/