Java Programming Tutorial Index

Java Object Oriented

In the chapter of Inheritance, earlier you have learned about classes and how other classes can inherit them. There, you have also learned about various types of inheritance and pointed out an odd thing that Java does not support multiple Inheritance. That is Java classes cannot have more than one superclass, i.e., the technique shown below is not permitted by Java.



Example:

class X extends Y extends Z
{
. . . . . .
}

But Java designers could not overlook the value and importance of multiple inheritances. A large number of real-life applications need the concept of multiple inheritances. Java provides an alternative way of using multiple inheritances know as interfaces to support this concept. Although Java class cannot be a subclass of more than one superclass, it can implement more than one interface. Hence this enables programmers to create classes that build upon other classes without the problem created by multiple inheritances.

Declaring Interfaces

The interface keyword is used to declare an interface.

Here is a simple program to declare an interface:

Example:

import java.lang.*;
//multiple import statements can be used here
public interface IntrfaceName
{
//Any number of final, static fields
//Any number of abstract method declarations
}

An interface is similar to class in the following ways

  1. The bytecode of an interface appears in a .class file
  2. An Interface is written in a file with .java extension
  3. Interfaces may contain any number of methods
  4. Interfaces can be arranged in packages and the file can be in a directory structure that matches the name of the package

Usage of Interface in Java

  • For achieving full data abstraction
  • Using Interface, you can use the concept of multiple inheritances
  • Interfaces can also be used to achieve loose coupling

Properties of Interfaces in Java

  1. Interfaces are implicitly abstract
  2. Every method within an interface is also implicitly abstract
  3. For the above reason, they do not need to be declared abstract
  4. All methods of an interface are implicitly public

Defining Interface

An interface is defined much like a class. The general form of defining an interface is:

Example:

access interface_name{
return-type method1(parameter list);
return-type method2(parameter list);
type final-varName1=value;
//         . . . . . . . .
}

When no access specifier is included, then the default access result along with the interface is only available to other members of the package in which it is declared. When it is declared as public, the interface can be used with any other code. It is to be noted that the methods declared have no bodies. They end with a semicolon after the parameter list. They are essentially abstract methods, and there can be no default implementation of any method specified within an interface. Variables can be declared inside the interface declarations.

Implementing Interfaces

Once an Interface has been defined, one or more classes can implement that interface. For implementing an interface, programmers need to use the clause 'implements' in the class definition and then create the method defined by the interface.

If a class implements more than one interface, the interfaces are separated with a comma. In case, a class is used to implement two interfaces that declare the same method; then the same method will be used by clients of either interface.

Here is a Java Program for Interface

Example:

import java.util.*;
import java.lang.*;
import java.io.*;

interface shapeX {
 public String base = "shape1";
 public void Draw();
}
interface shapeY extends shapeX {
 public String base = "shape2";
 public void Draw2();
}

class shapeG implements shapeY {
 public String base = "shape3";
 public void Draw() {
  System.out.println("Drawing Circle here:" + base);
 }
 @Override
 public void Draw2() {
  System.out.println("Drawing Circle here:" + base);
 }
}

public class Main {
 public static void main(String[] args) {
  shapeG circleshape = new shapeG();
  circleshape.Draw();
  circleshape.Draw();
 }
}


Found This Page Useful? Share It!
Get the Latest Tutorials and Updates
Join us on Telegram