×

Interface in Java

 

Interface in Java

In Java, the interface is just like a class that has only static constants and abstract methods. It is used to achieve polymorphism so that it can also implement multiple inheritance. All the methods in the Interface class are implicitly public and abstract.

A Java class can implement more than one interface (multiple interfaces). We can use an interface in a class by appending keyword “implements” after class name followed by the interface name.

Example

class Dog implements Animal

Java interface does not contain an implementation of methods; it only contains the signature of the method.

An interface is a 100 % abstracted class that has only abstract methods.

Since Java 8, Interfaces supported default and static methods only. Earlier versions of Java support private methods also.

Some important points about the interface are as follows.

  • The class provides body for the interface method.
  • Interface methods are abstract and public by default.
  • An interface never contains a constructor.
  • The interface declared inside the interface is known as the nested interface.

Declaration

interface  <interface name>
{
//constants declaration
//methods declaration
//default
}

Use of interface in java

In Java, interfaces are used for different motives like:

  • To achieve fully abstraction.
  • To achieve multiple inheritance in Java.
  • To implement abstraction.
  • To hide extra details and only show the essential information.
  • To provide security.
  • To achieve loose coupling.

To use multiple interfaces, separate every interface with a comma (,). Interfaces cannot be used to create objects.

Let’s have a look at below example.

Example1

interface  First
{
public void method1();
}
interface Second
{
public void method2();
}
class TestDemo implements First, Second
{
public void method1()
{
System.out.println("Text 1");
}
public void method2()
{
System.out.println("Text 2");
}}
class MyClass
{
public static void main(String[] args)
{
TestDemo obj=new TestDemo();
obj.method1();
obj.method2();
}}

Output

Text 1
Text 2

Real World example of interface

Example2

In this example, the Vehicle interface has only one method. Its implementation is provided by Car and Bike classes. In Java, an interface is defined by someone else, but its implementation is provided by different implementation providers. Moreover, it is used by someone else. In this process, the implementation part is hidden by the user who uses the interface.

interface Vehicle{ 
void run(); 
} 
//Implementation by second user 
class Car implements Vehicle{ 
public void run(){System.out.println("Car is running");} 
} 
class Bike implements Vehicle{ 
public void run(){System.out.println("Bike is running");} 
} 
//Using interface by third user 
class TestInterface{ 
public static void main(String args[]){ 
Vehicle obj=new Bike();//object is provided by method
obj.run(); 
}}

Output

Bike is running

Multiple inheritance by interface in Java

If an interface extends multiple interfaces, or a class implements multiple interfaces, it is known as multiple inheritance.

Example

interface Printable{ 
void printMsg(); 
} 
interface Showable{ 
void showMsg(); 
} 
class TestInterface2 implements Printable,Showable{ 
public void printMsg(){System.out.println("Get to the Safe zone");} 
public void showMsg(){System.out.println("Message Displayed");} 
public static void main(String args[]){ 
TestInterface2 obj = new TestInterface2(); 
obj.printMsg(); 
obj.showMsg(); 
 } 
}

Output

Get to the Safe zone
Message Displayed

Interface inheritance

Interfaces support the concept of inheritance. In Java, we can inherit an interface with another interface.

Let’s understand it with the help of TestInterface2 example.

Example

interface Printable{ 
void printMsg(); 
} 
interface Showable extends Printable{ 
void showMsg(); 
} 
class TestInterface2 implements Showable{ 
public void printMsg(){System.out.println("Get to the Safe zone");} 
public void showMsg(){System.out.println("Message Displayed");} 
public static void main(String args[]){ 
TestInterface2 obj = new TestInterface2(); 
obj.printMsg(); 
obj.showMsg(); 
 } 
}

Output

Get to the Safe zone
Message Displayed

 

One interface is inherited by another interface using the keyword “extends”. It is required to provide implementations for all methods required by the interface inheritance chain when a class implements an interface that inherits another interface. Let’s see an example that illustrates how one interface inherits other interfaces.

 // One interface can extend another.
interface Subject
{
void meth1();
void meth2();
}
// Marks interface now includes meth1() and meth2() -- it adds meth3()
interface Marks extends Student
{
void meth3();
}
// StudentDemo class can implement all methods of Subject and marks interface
classStudentDemo implements Marks {
public void meth1()
{
System.out.println("Implementing meth1().");
}
public void meth2()
{
System.out.println("Implementing meth2().");
}
public void meth3()
{
System.out.println("Implementing meth3().");
}
}
class Demo
{
public static void main(String arg[]) {
//creating obejct of StudentDemo class
StudentDemo ob = new StudentDemo();
ob.meth1();
ob.meth2();
ob.meth3();
}
}

Static Method in Interface

Interfaces support static methods. They can take places in interfaces.

See at below example.

interface Vehicle{ 
void run();
static int cube(int x){return x*x*x;} ; 
} 
class Car implements Vehicle{ 
public void run(){System.out.println("Car is running");} 
} 
class Bike implements Vehicle{ 
public void run(){System.out.println("Bike is running");} 
} 
class TestInterface{ 
public static void main(String args[]){ 
Vehicle obj=new Bike();
obj.run();
System.out.println(Vehicle.cube(7));
}}

Output

Bike is running
343

Marker or Tagged interface

An interface without any member is known as a marker or tagged interface, for example, Cloneable, Serializable, Remote, etc. These interfaces are used to provide some essential information to the JVM so that JVM may perform some useful operation.

Public interface Cloneable
{
}

Nested interfaces

We can declare another interface within the interface, such an interface is called as a member interface or nested interface.

interface Printable{ 
void printMsg();  
interface Showable{ 
void showMsg(); 
}}
It can be declared as public, private, or protected. If we need to declare an interface outside the enclosing scope, it must be qualified by the name of the class or interface of which it is a member. Below is an example demonstrating the use of nested interface:
 //Demo class contains a member interface.
class Demo
            {
            //difining a nested interface
            public interface NestedIf
            {
            booleanisNotNegative(int x);
            }
            }
//Demo2 class implements the nested interface.
Class Demo2 implements Demo.NestedIF
            {
            publicbooleanisNotNegative (int x)
                        {
                        return x<0 ? false : true;
                        }
            }
Class NestedDemo
{
            public static void main (String args [])
            {
            //using reference of the nested interface
            Demo.Nestedifnif = new Demo2();
            if(nif.isNotNegative(5))
            System.out.println("5 is not negative");
            if(nif.isNotNegative(-9))
                        System.out.println("This won't be displayed because it is negative");
            }
}

Note: On the above code, the Demo class defines a member interface called NestedIf, and that is declared public. Followed by Demo2 implements the nested interface by “implements Demo.NestedIf”.

Reason for using interface:

  • To fully abstract a class.
  • To support dynamic method resolution at run time.
  • By using interface, we can achieve multiple inheritance in java.
  • To achieve loose coupling.

Related Topics

Jdoodle Java

Everything is instantaneous and fast-paced in the modern world. Online compilers available via the internet are immensely helpful for programmers seeking to learn a new programming language but lacking the...

4 minutes read.

Balanced Parentheses in Java

One of the frequent programming issues, commonly referred to as the Balanced brackets issue, is the problem with the balanced parenthesis. Interviewers frequently provide this task, in which we must...

5 minutes read.

Advanced Java Viva Questions

One of the more difficult languages available now is Java. Currently, 10 thousand developers worldwide use the programming language, which is rising daily. So, if you're a Java developer, an aspiring...

9 minutes read.

Java this keyword

This Keyword in Java This keyword can be used in many different ways in Java. This is a reference variable in Java that points to the active object. In Java, the...

8 minutes read.

Concurrent Modification Exception In Java

When an object is attempted to be updated concurrently when it is not allowed, the ConcurrentModificationException arises. This error typically occurs while using Java Collection classes. When another thread is iterating...

5 minutes read.

Sorting a String in Java

Sorting a String in Java Sorting is a process of arranging available data objects in a meaningful format that is ascending or descending order. Sorting a string or array of String...

4 minutes read.

Round Robin Scheduling Program in Java

A CPU scheduling technique is known as Round Robin (RR). Additionally, network schedulers employ it. It was created specifically for a time-sharing system. The temporal slicing scheduling algorithm is another...

4 minutes read.

Java Xmx

This section will explain what Xmx in Java is and how to establish a Java application's maximum heap size. When we execute a Java application, it occasionally displays an error message...

3 minutes read.

Java Enum

Enumerations are used in programming languages to represent collections of named constants. For instance, the four suits in a deck of playing cards might represent four iterators named Club, Diamond,...

3 minutes read.

Three Partition Problems in Java

In talks with leading IT organizations like Google, Amazon, TCS, Accenture, etc., this extremely intriguing subject is constantly brought up. The goal of the problem-solving exercise is to evaluate the...

8 minutes read.

Monsoon Umbrella Problem in Java

The Monsoon Umbrella problem is a classic Java programming problem used to test the skills of a programmer. The problem involves writing a program to determine the number of umbrellas...

3 minutes read.

Best Java Security Framework

The security of applications is currently our top concern when creating them. The applications or bits of code running over the network are exposed to dangers and may jeopardize integrity,...

3 minutes read.

PriorityBlockingQueue Class in Java

What is the Queue? An abstract data structure like Stacks is a queue. A queue is open on both ends. Data is always pushed to one end, called enqueue, and removed...

4 minutes read.

Java Thread class

Thread class The thread represents a part of the process. Every process can have multiple associated threads in which every thread may execute the same or different job. By default, each thread assigns...

16 minutes read.

Armstrong Number Program in Java

Armstrong Number Program in Java: A positive number is called an Armstrong number if the sum of the cube of each digit is equal to the number itself. There are...

6 minutes read.

Java Vs C++

Java Vs C++ Java and C++ both are Object Oriented Programming languages. Both languages are popular for competitive programming. C++ is used by many coders who have just started learning programming...

4 minutes read.

File Operation in Java

In Java, a file is an Abstract data type. These are used to store the data which is related. Files are named storage locations. With a file we can perform...

7 minutes read.

String Programs in Java

String Programs in Java: In Java, a String is an immutable object that represents a sequence of characters. For example, “Tutorial” is a string that consists of 8 characters: ‘T’,...

10 minutes read.

Package Program in Java

Package Program in Java The package program in Java helps us to understand the significance of packages in Java. Packages are mainly used to group together similar classes, interfaces and sub-packages....

6 minutes read.

List of Constants in Java

In this tutorial, we are going to deal with constants available in Java.Every programming language has its constants. Similarly, Javaalso has got constants of its own. In this tutorial, we will...

6 minutes read.