| Interface | Abstract Class |
|---|---|
| An interface merely declares a contract or behavior that implementing classes should have. | An abstract class provides a partial implementation for a functionality that must be implemented by the inheriting entities. |
| An interface may declare only properties, methods and events with no access modifier. | An abstract class declares fields too. |