• Java
    • JAXB Tutorial
      • What is JAXB
      • JAXB Marshalling Example
      • JAXB UnMarshalling Example
  • Spring Tutorial
    • Spring Core Tutorial
    • Spring MVC Tutorial
      • Quick Start
        • Flow Diagram
        • Hello World Example
        • Form Handling Example
      • Handler Mapping
        • BeanNameUrlHandlerMapping
        • ControllerClassNameHandlerMapping
        • SimpleUrlHandlerMapping
      • Validation & Exception Handling
        • Validation+Annotations
        • Validation+ResourceBundle
        • @ExceptionHandler
        • @ControllerAdvice
        • Custom Exception Handling
      • Form Tag Library
        • Textbox Example
        • TextArea Example
        • Password Example
        • Dropdown Box Example
        • Checkboxes Example
        • Radiobuttons Example
        • HiddenValue Example
      • Misc
        • Change Config file name
    • Spring Boot Tutorial
  • Hibernate Tutorial
  • REST Tutorial
    • JAX-RS REST @PathParam Example
    • JAX-RS REST @QueryParam Example
    • JAX-RS REST @DefaultValue Example
    • JAX-RS REST @Context Example
    • JAX-RS REST @MatrixParam Example
    • JAX-RS REST @FormParam Example
    • JAX-RS REST @Produces Example
    • JAX-RS REST @Consumes Example
    • JAX-RS REST @Produces both XML and JSON Example
    • JAX-RS REST @Consumes both XML and JSON Example
  • Miscellaneous
    • JSON Parser
      • Read a JSON file
      • Write JSON object to File
      • Read / Write JSON using GSON
      • Java Object to JSON using JAXB
    • CSV Parser
      • Read / Write CSV file
      • Read/Parse/Write CSV File – OpenCSV
      • Export data into a CSV File
      • CsvToBean and BeanToCsv – OpenCSV

JavaInterviewPoint

Java Development Tutorials

Interface in Java and Uses of Interface in Java

February 2, 2015 by javainterviewpoint Leave a Comment

Abstraction is a process of hiding the implementation details and showing only functionality to the user. Earlier we have learnt about abstract class in java which is used to achieve partial abstraction. In this tutorial, we will discuss about interfaces which are used for achieving full abstraction. 

What is an Interface?

An interface is a blueprint of a class, it can have methods and variables like a class but methods declared in a interface will be by default abstract(only declaration no body) and the variables declared will be public, static & final by default.

Use of Interface in Java

  • Using interface we can achieve 100% abstraction in Java, as the methods doesn’t have body and the class needs to implement them before they access it.
  • Java does not support multiple inheritance using the interface we can achieve this as a class can implement more than one interface.

Example of Java Interface

interface Shape
{
        public abstract void size(); 
}
public class Logic implements Shape
{
    @Override
    public void size() 
    {
        System.out.println("Size method implementation called");
    }
    public static void main(String args[])
    {
        Logic l = new Logic();
        l.size();

        //Dynamic binding
        Shape s = new Logic();
        s.size();
    }
}

Output

Size method implementation called
Size method implementation called

In the above code we have an interface “Shape” which has a abstract method “size()” and Logic is the class which implements the size() method(provided body).

 Can Abstract Class have constructor?

Unlike Abstract class which can  have constructor,non abstract method , main method. Interface cannot have Constructor, non abstract method and main method.

public interface Shape
{
       public Shape()
       {
           System.out.println("Constructor not allowed in Interface");
       }
        public abstract void size(); 
        public void disp()
        {
            System.out.println("non-abstract method not allowed in Interface");
        }
        public static void main(String args[])
        {
           //Some Logic
        }
}

The above interface will throw compilation errors as the interface cannot have contructor,non-abstract method and main method(as public and abstract qualifiers are only permitted).

Important points to remember

  • An Interface cannot be instantiated in Java.
  • Methods declared in a interface should be public and abstract 
  • Interface cannot have concrete methods(non-abstract methods or methods with body)
  • variables declared should be public, static & final even though if you miss any one or all the qualifiers it will be automatically assigned. Lets see all the valid scenarios.
    interface Test
    {
    int a = 10;
    public int b = 10;
    static int c = 10;
    final int d = 10;
    static final int e =10;
    public static int f= 10;
    public final int g =10;
    }
  • Interface variables must be initialized at the time of declaration else the compiler will throw error. Below is not a valid declaration
interface Test
{
int a;
}
  • An Interface can only extend other interface (only one)
  • A Class can implement any number of interface
interface Interface1
{
    public void method1();
}
interface Interface2 extends Interface1
{
    public void method2();
}
public class Demo implements Interface1,Interface2
{
    @Override
    public void method2() 
    {
    }
    @Override
    public void method1() 
    {
    }
    public static void main(String args[])
    {
    }
}
  • If two interface have methods with same signature and same return type then the implementing class can implement any one of those.
interface Interface1
{
    public void method1();
}
interface Interface2 
{
    public void method1();
}
public class Demo implements Interface1,Interface2
{
    @Override
    public void method1() 
    {
    }
    public static void main(String args[])
    {
    }
}
  • If two interface have methods with same signature and different return type cannot be implemented at the same time
interface Interface1
{
    public void method1();
}
interface Interface2 
{
    public int method1();
}
public class Demo implements Interface1,Interface2
{
    @Override
    public void method1() //will throw compilation error
    {
    }
    @Override
    public int method1() //will throw compilation error
    {
    }
    public static void main(String args[])
    {
    }
}
  • In the implementing class we cannot change the variable value which is declared in the interface as it is final by default
interface Interface1
{
    int val=10;
    public void method1();
}

public class Demo implements Interface1
{
    @Override
    public void method1() 
    {
    }
    public static void main(String args[])
    {
        Interface1.val=20; //Will throw compilation error
    }
}

Other interesting articles which you may like …

  • Encapsulation in Java with Example
  • Constructor in Java and Types of Constructors in Java
  • Final Keyword in Java | Java Tutorial
  • Java Static Import
  • Java – How System.out.println() really work?
  • Java Ternary operator
  • Java newInstance() method
  • Java Constructor.newInstance() method Example
  • Parameterized Constructor in Java with Example
  • Sort Objects in a ArrayList using Java Comparator
  • Sort Objects in a ArrayList using Java Comparable Interface
  • Difference between equals() and ==
  • Difference between fail-fast and fail-safe Iterator
  • Difference between Enumeration and Iterator ?
  • Difference between HashMap and Hashtable | HashMap Vs Hashtable

Filed Under: Core Java, Java Tagged With: Interface, Java

Leave a Reply Cancel reply

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Java Basics

  • JVM Architecture
  • Object in Java
  • Class in Java
  • How to Set Classpath for Java in Windows
  • Components of JDK
  • Decompiling a class file
  • Use of Class.forName in java
  • Use Class.forName in SQL JDBC

Oops Concepts

  • Inheritance in Java
  • Types of Inheritance in Java
  • Single Inheritance in Java
  • Multiple Inheritance in Java
  • Multilevel Inheritance in Java
  • Hierarchical Inheritance in Java
  • Hybrid Inheritance in Java
  • Polymorphism in Java – Method Overloading and Overriding
  • Types of Polymorphism in java
  • Method Overriding in Java
  • Can we Overload static methods in Java
  • Can we Override static methods in Java
  • Java Constructor Overloading
  • Java Method Overloading Example
  • Encapsulation in Java with Example
  • Constructor in Java
  • Constructor in an Interface?
  • Parameterized Constructor in Java
  • Constructor Chaining with example
  • What is the use of a Private Constructors in Java
  • Interface in Java
  • What is Marker Interface
  • Abstract Class in Java

Java Keywords

  • Java this keyword
  • Java super keyword
  • Final Keyword in Java
  • static Keyword in Java
  • Static Import
  • Transient Keyword

Miscellaneous

  • newInstance() method
  • How does Hashmap works internally in Java
  • Java Ternary operator
  • How System.out.println() really work?
  • Autoboxing and Unboxing Examples
  • Serialization and Deserialization in Java with Example
  • Generate SerialVersionUID in Java
  • How to make a class Immutable in Java
  • Differences betwen HashMap and Hashtable
  • Difference between Enumeration and Iterator ?
  • Difference between fail-fast and fail-safe Iterator
  • Difference Between Interface and Abstract Class in Java
  • Difference between equals() and ==
  • Sort Objects in a ArrayList using Java Comparable Interface
  • Sort Objects in a ArrayList using Java Comparator

Follow

  • Coding Utils

Useful Links

  • Spring 4.1.x Documentation
  • Spring 3.2.x Documentation
  • Spring 2.5.x Documentation
  • Java 6 API
  • Java 7 API
  • Java 8 API
  • Java EE 5 Tutorial
  • Java EE 6 Tutorial
  • Java EE 7 Tutorial
  • Maven Repository
  • Hibernate ORM

About JavaInterviewPoint

javainterviewpoint.com is a tech blog dedicated to all Java/J2EE developers and Web Developers. We publish useful tutorials on Java, J2EE and all latest frameworks.

All examples and tutorials posted here are very well tested in our development environment.

Connect with us on Facebook | Privacy Policy | Sitemap

Copyright ©2023 · Java Interview Point - All Rights Are Reserved ·