C# Abstract Class

An abstract class cannot be instantiated. The purpose of an abstract class is to provide a common definition of a base class that multiple derived classes can share. For example, a class library may define an abstract class that is used as a parameter to many of its functions, and require programmers using that library to provide their own implementation of the class by creating a derived class.

How does an Interface differ from an Abstract Class?

An interface is not a class, it has no implementation where an abstract class does have implementation that the inheriting class must use.