C# Interface vs Abstract class

In the previous sections, you have learned that how interfaces and abstract classes work. Although some features of abstract class and interface are similar but there is a big difference between them. In this section, you will learn about the main differences between abstract classes and interfaces.

Following is the list of differences between abstract class and interface.

Abstract Class Interface
Abstract classes can contain the implementation for some of its members Interface can't have an implementation for any of its member.
An abstract class can have fields with different access modifiers Infaces can't have fields
An abstract class can inherit another abstract class and interface as well. An interface can only inherit another interface.
We can provide access modifiers for abstract class members. Interface members are by default public, they can not have an access modifier.
An abstract class can inherit only one class, or it can inherit one more interface interfaces can inherit only interfaces

Let's learn about sealed class in the next section.