Difference Between Abstract Class and Interface- GATE Difference Between Articles

Difference Between Abstract Class and Interface- GATE Difference Between Articles

Both interface and abstract class are used when we want to achieve abstraction in those cases where we can perform the declaration of the abstract methods.

Both of these can’t be instantiated. In this article, we will discuss the difference between abstract class and interface. They are very different from each other. Simply, the abstract class achieves partial abstraction (0 to 100%) whereas the interface achieves fully abstraction (100%). To know more on this topic, you can visit the difference between abstract class and interface here. Or you can read ahead to know more about this topic in brief.

Abstract class

It can have abstract and non-abstract methods. It is fast, and it doesn’t support multiple inheritance. It can have final, non-final, static and non-static variables. An Abstract class can provide the implementation of an interface. The abstract keyword is used to declare an abstract class. An abstract class can extend another Java class and implement multiple Java interfaces. An abstract class can be extended using the keyword “extends”. A Java abstract class can have class members like private, protected, etc.

It should be used when various implementations of the same kind share a common behaviour. In the case of Abstract Class, you can take advantage of the default implementation.


public abstract class Shape{

public abstract void draw();


Important reasons we can use Abstract Class

  • For the subclasses, an Abstract class would offer default functionality.
  • It provides certain templates for future specific classes.
  • For its subclasses, it helps you define a common interface.
  • Abstract classes allow reusability of code.


It supports multiple inheritances. It is slow, and it can only have abstract methods. Since Java 8, it can have static and default methods as well. It only has static and final variables. An Interface can’t provide the implementation of an abstract class. The interface keyword is used to declare the interface. An interface can extend to another Java interface only. An interface can be implemented using the keyword “implements”. Members of a Java interface are public by default. Looking for java script assignment help? Our top programmers provide high-quality javascript programming assignments at an affordable price

It is better to use interfaces when various implementations share only method signatures. Polymorphic hierarchy of value types. While adding new stuff to the interface, it is a nightmare to find all the implementers and implement newly defined stuff.


public interface Drawable{

void draw();


Important reasons why we can use Interfaces

  • We can use Interfaces to achieve abstraction.
  • These are designed to support dynamic type of method resolution at run time.
  • Abstract classes help you to achieve loose coupling as well.

Allows you to separate the definition of a method from the inheritance hierarchy

We hope this article was helpful for you. Are you a GATE aspirant? Looking for more such difference between articles? You can visit GATE Difference Between articles here to read more of these! Prepare better for your GATE 2023 exams by clarifying your doubts on the smallest of topics. Read more articles on individual concepts and manage your time well to crack this session with flying colours in one go! All the best.

About Naimar

Check Also

Katie Salen invites you to enter the world of game-based learning

Katie Salen invites you to enter the world of game-based learning

What is the future of games and play in education?¬†What are the possibilities of using …

Leave a Reply

Your email address will not be published. Required fields are marked *