·
An abstract class may contain complete or incomplete methods.
Interfaces can contain only the signature of a method but no body. Thus an abstract
class can implement methods but an interface can not implement methods.
·
An abstract class can contain fields, constructors, or
destructors and implement properties. An interface can not contain fields,
constructors, or destructors and it has only the property's signature but no
implementation.
·
An abstract class cannot support multiple inheritance, but an interface
can support multiple inheritance. Thus a class may inherit several interfaces
but only one abstract class.
·
A class implementing an interface has to implement all the
methods of the interface, but the same is not required in the case of an abstract
Class.
·
Various access modifiers such as abstract, protected, internal, public,
virtual, etc. are useful in abstract Classes but not in interfaces.
·
Abstract classes are faster than interfaces.