Interface in Java

In this section we will learn about Interface and Marker Interfaces
in Java. This tutorial will clarify your questions "What is marker
Interface?" and "Why to use Marker Interface?" and "difference
between abstract class and the interface".
Interface
In general, interface is the way just to say something
to a media by using another media. Let's take the general life example. TV Remote is the interface because it is the medium to give the command to a TV
in order to change the channels or to ON/OFF the TV. Electric switch is also the interface's
example.
But in java programming language interface is nothing
but the collection of methods with empty implementations and constants
variables ( variables with static and final declarations ). All the methods
in an interface are "public and abstract" by default. Since interfaces are abstract
in nature so they can not be directly instantiated. To define the methods of
an interface the keyword "implements" is
used. Interfaces are similar to abstract classes but the major difference
between these
two is that interface have all the methods abstract while in case of abstract classes
must have at least one abstract method. Interface combines the two functionality
(template and multiple inheritance) of C++ language into one (in
itself).
Interface Definition
visibility mode interface interfaceName{
constant variable declarations
abstract method declarations
}
|
e.g.
public interface RacingCar{
public void startcar (int Obj);
public void changegear (int Obj);
public void incrrace (int Obj);
public void stopcar (int Obj);
}
|
Marker Interface
In java language programming, interfaces with no methods are known as
marker interfaces. Marker interfaces are Serializable, Clonable,
SingleThreadModel, Event listener. Marker Interfaces are implemented by the
classes or their super classes in order to add some functionality.
e.g. Suppose you want to persist (save) the state of an object then you
have to implement the Serializable interface otherwise the compiler will throw an
error. To make more clearly understand the concept of marker interface you
should go through one more example.
Suppose the interface Clonable is neither implemented by a class named Myclass
nor it's any super class, then a call to the method clone() on Myclass's object
will give an error. This means, to add this functionality one should
implement the Clonable interface. While the Clonable is an empty interface but
it provides an important functionality.
Difference between Interfaces and abstract classes
Some important difference between Interface and
abstract classes are given here
| Features |
Interface |
Abstract Class |
| Methods |
An interface contains all the
methods with empty implementation. |
An abstract class must have at
least one method with empty implementation. |
| Variables |
The variables in interfaces
are final and static. |
Abstract classes may contain
both instance as well as static variables. |
|
Multiple Inheritance |
In java multiple inheritance is
achieved by using the interface (by implementing more than one interface
at a time) |
Abstract classes does not provide
this functionality. |
| Additional
Functions |
If we add a method to an interface
then we will have to implement this interface by any class.. |
In Abstract classes we can add a
method with default implementation and then we can use it by extending
the abstract class. |

|
Current Comments
3 comments so far (post your own) View All Comments Latest 10 Comments:i want to different between method overloading and method overriding? 3 to 4 differences giv me plzz send me my mail naveenk_raju@yahoo.co.in
Posted by naveen on Friday, 04.25.08 @ 17:47pm | #57852
i want to know, like if a subclass of a class implementing Serilizable interface, don't want to be serialize, so how can we prevent this Serialization....
Posted by Vishal on Wednesday, 02.20.08 @ 01:18am | #49130
I want to know the use of interface. we are declaring the methods inside the interface and defining the methods in the program. we can do the same without the interface also. then whats the use of the interface. Please send me about interface in detail..
Posted by Joseph on Tuesday, 06.12.07 @ 12:09pm | #18976