×

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

String Coding Interview Questions in Java

What is String in Java?In Java, a String is a Class that is defined in the java.lang package. It isn't a basic data type like int or long. Character Strings...

5 minutes read.

Difference between next() and nextline() in Java

One of the simplest methods for receiving input of the basic data types, also including int, double, and strings, in Java, is to use the Scanner class, which is part...

3 minutes read.

Java Implements Keyword

To understand about the keyword implements we need to learn about the concept of the interfaces and inheritance in java programming languages. So let us learn about the interface and...

3 minutes read.

How to Convert Timestamp to Date in Java

How to Convert Timestamp to Date in Java You can convert Timestamp to Date by using the constructor of Date class. It returns the long millisecond from Epoch (1st January 1970)...

2 minutes read.

Java Hello World

Let’s start by writing a simple program that prints “Hello World” to the output window. Write the program into any text editor or IDE (Eclipse, Netbeans, etc.) and save the file with the...

2 minutes read.

Java Integer equals() method

The equals() method of Integer class compares the given object to the specified object. Syntax public boolean equals(Object obj) Parameters The parameter ‘obj’ represents the object to be compared with. Overrides The equals() method overrides equals...

1 minute read.

Inheritance Program in Java

Inheritance Program in Java Inheritance is one of the important pillars of Object-Oriented Programming that facilitates parent-child relationships in programming. Using inheritance, we can create a new class with the help...

7 minutes read.

Java Case Keyword

Case keyword: In this article we are going to learn the concept of a java case keyword.Generally, java case keyword is used with the switch statements.Case keyword is implemented in conditional...

3 minutes read.

Davis Staircase Problem in Java

Davis has several stairs in his home and prefers to ascend one, two, or three steps at a time. As a highly clever youngster, he thinks about how many ways...

3 minutes read.

How to create a mirror image of a 2D array in Java

Problem Statement We have provided a list of m x n. here m indicates rows, and n indicates columns). Printing the fresh matrices should result in a mirror reflection of an...

2 minutes read.

Salesman Problem in Java

The Traveling Salesman Problem determines the shortest path that visits each city approximately once and loops back to the starting location. Another Java problem that is most like the Traveling...

5 minutes read.

Methods in Java

The Methods in Java are the collection of statements that are executed when the method is called. By using the methods, the complexity of writing the code decreases. The method consists...

4 minutes read.

Java StringWriter Class

The StringWriter class is a character stream in which it is used to store the output consisting of characters into the string buffer. Upon collecting output into a string buffer,...

3 minutes read.

Java Clone Array

We frequently need to copy an array to back up its original components. We have a few unique numbers and strings, including Armstrong numbers, palindrome numbers, and palindrome strings. To...

4 minutes read.

Rectangular Numbers in Java

In this tutorial, we will understand the meaning of a rectangular number in Java with the aid of examples, illustrations, and implementations. It is one of the popular coding interview...

3 minutes read.

Java String toUpperCase() methods

Java String toUpperCase() method is used to convert all the characters of the String into upper case. Syntax public String toUpperCase() public String toUpperCase(Locale locale) Returns It returns upper case String. Java String toUpperCase() Example 1: public...

1 minute read.

Reverse a String using Collections in Java

Generally, a String is a grouping of characters. Yet, in Java, a String is an item that addresses a succession of characters. The Java.lang.String class is utilized to make a...

5 minutes read.

Java Integer valueOf() method

The valueOf() method of Java Integer class returns an Integer object holding the specified int value. The second method returns an Integer object holding the specified String value. The third syntax returns...

2 minutes read.

Java Date add Days

In order to operate with the time and the Date in Java, we used the abstract Calendar class. It has several helpful interfaces that enable us to convert dates between...

4 minutes read.

Java Xml Parser

In this article, we acknowledge you about what is a XML parser in Java, how is it going to work and what is the purpose of it. Also, the article discusses...

6 minutes read.