3ca10488_nd_Abstract_classes_in_C_Sharp__Abstract_class
[Feature] Core VS Peripheral [Interface] Interfaces are used to define the peripheral abilities of a class. In other words both Human and Vehicle can inherit from a IMovable interface. [Abstract class] 
An abstract class defines the core identity of a class and there it is used for objects of the same type.
My Experience with Dot Net: Interfaces and Abstract classes in C-Sharp
Abstract class