Interfaces in Java, Everything You Need to Know!
In this blog post we will be answering some of your most commonly asked questions when it comes to interfaces in java. So firsts things first, what is it?
An interface is a tool (much like a class) that is used to achieve abstraction AKA the art of taking human ideas/concepts and representing them in code, it works as a container that stores the method signature as well as its constants. It is one of the key concepts of Object Oriented Programming (OOP). In a nutshell it allows the developer to handle complexities within the program whilst hiding them from the user. As a software developer it is important to know how to implement interfaces for this very reason.
What must a class do in order to implement an interface?
In order for a class to implement and interface it would need to specify that it implements the interface and provide implementations for all the methods used in the interface. If these conditions are not met the compiler will display an error.
So with that being said, what is the difference between an abstract class and an interface?
The main difference is that an abstract class and an interface is that the class allows instance variables. See more examples of differences in the table below:
Abstract class | Interface |
---|---|
1) Abstract class can have abstract and non-abstract methods. | Interface can have only abstract methods. Since Java 8, it can have default and static methods also. |
2) Abstract class doesn't support multiple inheritance. | Interface supports multiple inheritance. |
3) Abstract class can have final, non-final, static and non-static variables. | Interface has only static and final variables. |
4) Abstract class can provide the implementation of interface. | Interface can't provide the implementation of abstract class. |
5) The abstract keyword is used to declare abstract class. | The interface keyword is used to declare interface. |
6) An abstract class can extend another Java class and implement multiple Java interfaces. | An interface can extend another Java interface only. |
7) An abstract class can be extended using keyword "extends". | An interface can be implemented using keyword "implements". |
8) A Java abstract class can have class members like private, protected, etc. | Members of a Java interface are public by default. |
9)Example: public abstract class Shape{ public abstract void draw(); } | Example: public interface Drawable{ void draw(); } |
Comments
Post a Comment