Interface Abstract
  An Interface contains only the signatures (no code definition) of methodspropertiesevents or indexers.

Abstract modifier indicates that the thing being modified has a missing or incomplete implementation.

An abstract class can provide complete, default code and/or just the details that have to be overridden.

Instantiation   An abstract class cannot be instantiated.
Implemetation A class or struct that implements the interface must implement the members of the interface that are specified in the interface definition.

An abstract class must provide implementation for all interface members.

An abstract class that implements an interface might map the interface methods onto abstract methods

Inheritance An interface can inherit from one or more base interfaces.  
Multiple inheritance A class may inherit several interfaces. A class may inherit only one abstract class.
Base Class When a base type list contains a base class and interfaces, the base class must come first in the list. Use the abstract modifier in a class declaration to indicate that a class is intended only to be a base class of other classes.
Derived Class   A non-abstract class derived from an abstract class must include actual implementations of all inherited abstract methods and accessors.
Sealed   It is not possible to modify an abstract class with the sealed modifier because the two modifers have opposite meanings.
Member A class that implements an interface can explicitly implement members of that interface. An explicitly implemented member cannot be accessed through a class instance, but only through an instance of the interface.

An abstract class may contain abstract methods and accessors.

Members marked as abstract, or included in an abstract class, must be implemented by classes that derive from the abstract class.


An abstract method is implicitly a virtual method.

Abstract method declarations are only permitted in abstract classes.

Because an abstract method declaration provides no actual implementation, there is no method body; the method declaration simply ends with a semicolon and there are no curly braces ({ }) following the signature.

It is an error to use the static or virtual modifiers in an abstract method declaration.

Property Interface contains the property declaration and the class contains the implementation.

Use the abstract modifier in a property (or method) declaration to indicate that the method or property does not contain implementation.

Abstract properties behave like abstract methods, except for the differences in declaration and invocation syntax.

It is an error to use the abstract modifier on a static property.

An abstract inherited property can be overridden in a derived class by including a property declaration that uses the override modifier.

Access Modfiers An interface cannot have access modifiers for the subs, functions, properties etc everything is assumed as public An abstract class can contain access modifiers for the subs, functions, properties
Defines Interfaces are used to define the peripheral abilities of a class. An abstract class defines the core identity of a class and there it is used for objects of the same type.