Tech News

What is the differnece between Abstract class & Interface?

In an abstract class, we can create the functionality and that needs to be implemented by the derived class. The interface allows us to define the functionality or functions but cannot implement that. The derived class extends the interface and implements those functions.

Abstract Class Interface
Abstract classes are inherited. Interfaces are Implemented.
It is a half-defined parent class. It is a contract.
Share some common logic in child classes Planning Abstraction.
It contains both declaration and definition parts. It contains only a declaration part.
It contains both declaration and definition parts. It contains only a declaration part.
Multiple inheritance is not achieved by abstract class. Multiple inheritance is achieved by interface.
It contain constructor. It does not contain constructor.
It can contain static members. It does not contain static members.
It can contain different types of access modifiers like public, private, protected etc. It only contains public access modifier because everything in the interface is public.
The performance of an abstract class is fast. The performance of interface is slow because it requires time to search actual method in the corresponding class.
It is used to implement the core identity of class. It is used to implement peripheral abilities of class.
A class can only use one abstract class. A class can use multiple interface.
If many implementations are of the same kind and use common behavior, then it is superior to use abstract class. If many implementations only share methods, then it is superior to use Interface.
Abstract class can contain methods, fields, constants, etc. Interface can only contain methods .
It can be fully, partially or not implemented.
It should be fully implemented.
Sr. No. Key Abstract Class Interface
1 Definition In terms of standard definition, an Abstract class is, conceptually, a class that cannot be instantiated and is usually implemented as a class that has one or more pure virtual (abstract) functions. On other hand an Interface is a description of what member functions must a class, which inherits this interface, implement. In other words, an interface describes behaviour of the class.
2 Implementation As like of other general class design in C# Abstract class also have its own implementation along with its declaration. On other hand an Interface can only have a signature, not the implementation. While its implementation is being provided by the class which implements it.
3 Inheritance As per specification in C# a class can extends only one other class hence multiple inheritance is not achieved by abstract class. On other hand in case of Interface a class can implements multiple interfaces and hence multiple inheritance is achieved by interface.
4 Constructor Like other classes in C# for instantiation abstract class also have constructor which provide an instance of abstract class to access its non-static methods. On other hand Interface do not have constructor so we can’t instantiate an interface directly although its method could get accessed by creating instance of class which implementing it.
5 Modifiers As abstract class is most like of other ordinary class in C# so it can contain different types of access modifiers like public, private, protected etc. On other hand as Interface needs to be get implemented in order to provide its methods implementation by other class so can only contains public access modifier.
6 Performance As abstract class have its method as well as their implementations also for its abstract methods implementation it have reference for its implementing class so performance is comparatively faster as compare to that of Interface. On other hand the performance of interface is slow because it requires time to search actual method in the corresponding class.

Watch video to clear the concept-

Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x