Tuesday, May 22, 2007

Abstract Class vs. Interface

  • 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.

http://aspalliance.com/1213_Working_with_Abstract_classes_Sealed_Classes_and_Interfaces_in_C

No comments: