What are Interfaces in Java? | Types of the Interface in Java

What are Interfaces in Java? | Types of the Interface in Java. Learn about Interfaces in Java. Interfaces in Java are an integral part of object-oriented programming, providing flexibility and control over how related classes interact with each other. This allows developers to customize the code for specific requirements while allowing multiple classes to use the same code. 


Java uses interfaces to specify a contract between classes, requiring that each class implement a specific set of methods. As a result, an interface outlines a set of methods that must be implemented by the class. Interfaces are object-oriented blueprints for classes defining a set of methods that must be implemented. 

What are Interfaces in Java?

Java interfaces are a concept that allows developers to specify a class’s structure without specifying its exact implementation. As a result, developers may be able to create classes that can work with classes sharing the same interface regardless of their implementation, allowing them to design classes that can work with other classes. In addition to providing a means of encapsulating and abstracting data, interfaces enable code to be extended and reused

Types of the Interface in Java

The Java programming language has two types of interfaces:

  1. Marker Interface

An interface that implements a marker interface does not have methods or fields but simply indicates that the class implementing the interface has a certain property or behavior. Serializable, for example, is a marker interface that indicates that a class may be serialized, or converted to a stream of bytes, for storage or transmission. Using the Serializable interface, classes can be saved to disk or sent across a network.

  1. Functional Interface

A functional interface is an interface that has exactly one abstract method. In Java 8 and later versions, functional programming concepts and lambda expressions are used in conjunction with functional interfaces. Functional interfaces can be marked as functional interfaces by annotating them with the @FunctionalInterface annotation. It is, for example, a functional interface if the Runnable interface contains only one abstract method run().

MyFunctionalInterface interface MyFunctionalInterface [void method();]

It is a functional interface that is primarily used in functional programming and lambda expressions. In Java 8, functional interface implementations are used to implement behavior as a method argument.

Both marker interfaces and functional interfaces may also be referred to as special interfaces, which are characterized by certain characteristics.

Benefits of Interfaces

There are several benefits to using Java interfaces:

  • Multiple inheritances are possible with interfaces, which means a class can implement more than one interface.
  • The interface allows classes to work together without being tightly coupled, thereby enabling classes to work together.
  • A class’ interface specifies a set of methods that all classes must implement in order to form a contractual relationship between them.

Understanding Interfaces

Interfaces in Java are collections of abstract methods which must be implemented by a class. Abstract methods are methods that have no body and are defined only by their signature (i.e., the method name, return type, and parameter list). An interface named “MyInterface”, for example, may contain an abstract method known as “method ()” with no parameters and no return value.

All abstract methods of an interface must be implemented by a class that implements it. The class must define a body for each method, indicating how the method should be implemented. It is necessary to define a body for the method () method if the class “MyClass” implements the MyInterface interface.

Implementing an Interface

Java classes must implement an interface by using the “implements” keyword followed by the name of the interface. For example, to implement the “MyInterface” interface, a class would use the following syntax:

It should be noted that the public class MyClass implements MyInterface [ // implementation for methods of the interface here }

A class that implements an interface must provide a concrete implementation for each abstract method of the interface. For example, if the abstract method “method()” is defined in the “MyInterface” interface, the “MyClass” class must provide a body for that method.

How To Declare Interfaces?

There are a few key differences between declaring an interface in Java and declaring a class. Here is how to declare an interface in Java:

The interface interface-name is as follows: { // constant variables // abstract methods }

  • Declaring an interface is accomplished by using the keyword “interface” rather than the word “class.”.
  • CamelCase should be used for the name of the interface and the first letter should be capitalized.
  • Interfaces do not have constructors, as opposed to classes.
  • A public, static, and final field is implicitly included in an interface.
  • An interface contains implicitly public and abstract methods.


The following is an example of how an interface named “MyInterface” might be declared:

The interface MyInterface has the following properties: { int MAX_COUNT = 100; void method(); }

The interface name in this example is “MyInterface”, the constant variable MAX_COUNT is a constant variable, and the abstract method “method” is a constant variable.


Java’s interfaces are a powerful feature that allows different classes to set a contract with each other by specifying a common set of methods that they must implement. Multiple inheritances, loose coupling between classes, and the ability to define a contract among them are some of the benefits they provide. In order to make your codebase more maintainable and scalable.

Leave a Reply

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