- Interface is a collection of abstract methods.
- Abstract class is a collection of abstract and regular methods.
About Abstract Class :
Abstract class is a class that contain complete and abstract (incomplete) both type of member/method and it can not be instantiated, Abstract classes are one of the essential behaviors provided by dotnet.
Interface contains only definition / signature of functionality, and if we have some common functionality as well as common signature then there is a need of abstract class so through abstract class we can provide behavior as well as functionality both in the same time, developer inheriting abstract class can use this functionality and need to fill only in the blank.
About Interface :
Interface is a type which contains only the signatures of methods, delegates or events, it has no implementation, Implementation of the methods is done by the class that which implements the interface.
Interface is a contract that defines the signature of the functionality. So if a class is implementing a interface it says to the outer world, that it provides specific behavior. Example if a class is implementing ‘Idisposable’ interface that means it has a functionality to release unmanaged resources.
OOPs interface vs abstract class
|Interface support multiple inheritance||Abstract class does not support multiple inheritance|
|Interface does’n Contains Data Member||Abstract class contains Data Member|
|Interface does’n contains Cunstructors||Abstract class contains Cunstructors|
|An interface Contains only incomplete member (signature of member)||An abstract class Contains both incomplete (abstract) and complete member|
|An interface cannot have access modifiers by default everything is assumed as public||An abstract class can contain access modifiers for the subs, functions, properties|
|Member of interface can not be Static||Only Complete Member of abstract class can be Static|