Skip to main content

Java Interface

Java Interface

In the chapter of Inheritance, earlier you have learned about classes and how they can be inherited by other classes. 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 inheritance. A large number of real-life applications need the concept of multiple inheritance. Java provides an alternative way of using multiple inheritance 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 inheritance.

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 inheritance
  • Interfaces can also be used to achieve loose coupling

Properties of Interfaces in Java

  1. Interfaces are implicitly abstract
  2. Each and 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();
}
}


Comments

For Programs Click Here

Popular posts from this blog

Syllabus

Syllabus  C Programming Tutorials C Tutorial C Introduction History of C Programming Language C Installation C Program Structure C Input and Output (I/O) C Format Specifiers Declaration & Assignments C Tokens C Identifiers C Keywords C Constants C Operators C Data Types C Variables C Preprocessors C Type Casting C Custom Header File Flow Control C Decision Making C if Statements C if-else Statements C Nested if-else Statements C else-if Statements C goto Statement C switch Statements C Loops C while loops C do while loops C for loops Functions C Functions C Function Arguments C Library Functions C Variable Scope Arrays & Strings C Arrays C Strings Pointers C Pointers C Dynamic Memory Allocation Structure & Union C Structures C Unions File I/O C File Handling C fopen C fclose C getc C putc C getw C putw C fprintf C fscanf C fgets C fputs C feof                                     ...

Syllabus

Python Tutorials Python Tutorial Python Overview Python Installation Basics of Python Programming Python Operators Python Keywords Python Numbers Python Strings Python Data Types Python Variables Python Lists Python Tuples Python Date and Time Python Decision Making Python Loops Python File Handling Python Dictionaries Python Functions Python Modules Python Exceptions Handling Python Object Oriented Inheritance in Python Python Regular Expressions Python Networking Programming Python Multithreaded Programming Python CGI Programming Python Database Connection Python Metaprogramming Python Data Processing And Encoding Python GUI Programming

C++ Data Abstraction

C++ Data Abstraction Object oriented programming offers various features to write programs with various concepts that help to minimize problems and increase flexibility in program. One of the features of object oriented programming is Data abstraction. In this chapter you will learn about how the concept data abstraction is carried out within the C++ program. What is Data abstraction? Data abstraction allows a program to ignore the details of how a data type is represented. Abstraction (derived from a Latin word  abs , meaning away from and  trahere , meaning to draw) refers to the act of representing essential features without including the background details or explanations. C++ classes use the technique of abstraction and are defined as a list of abstract attributes such as width, cost, size etc and functions to operate on these attributes. They put in a nutshell all the essential properties of an object that are required to be created. The attributes are therefore called...