Interface Abstract
Interfaces have all the methods having only declaration but no definition.
In an abstract class, we can have some concrete methods. 


 In an interface class, all the methods are public. 
An abstract class may have private methods.
  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.

Access Specifier  In C#, Interface cannot have access specifier for functions. It is public by default. In C#, an abstract class can have access specifier for functions.
Instantiation Interface is absolutely abstract and cannot be instantiated. An abstract class cannot be instantiated.

In C#, an interface can only have a signature, not the implementation.

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 can provide complete implementation.

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

Speed The interface is comparatively slow. An abstract class is fast.

Interface cannot have fields.

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 can have defined fields and constants.

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.

Interface has only abstract methods.

An abstract class can have non-abstract methods.

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.

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