Concept of Interface

advertisement
We have learned about classes in packages and next to it is the implementation of
interface in java programming. An interface in Java programming language is an
abstract type, which is used to specify an interface (in the generic sense of the
term) that classes must implement. Interfaces are declared using the interface
keyword, and may only contain method signature and constant declarations in
variable declarations that are declared to be both static and final keywords. All
methods
of
an
Interface
do
not
contain
implementation.
Interfaces cannot be instantiated, but rather implemented. A class that
implements an interface must implement all of the methods described in the
interface,
or
be
an
abstract
class.
One benefit of using interfaces is that they simulate
multiple inheritance. All classes in Java must have exactly one base class, the only
exception being
java.lang.Object the
root
class.
A Java class may implement an interface and may extend to any number of
interfaces; however an interface may not implement an interface. Also, java
programming language does not support multiple inheritances. Using interfaces we
can achieve this as a class can implement more than one interfaces, however it
cannot
extend
more
than
one
For
Declaration
interface
{
classes.
example:
of
Interface
My
with
syntax:
Interface
/*
*
All
Note
the
methods
down
that
are
these
public
methods
abstract
are
not
by
default
having
body
*/
public
void
method1();
public
void
method2();
}
Program
on
sample
interface:
interface
Bounceable
{
void
//
setBounce();
Interface
methods
//
are
Note
public,
abstract
the
and
semicolon
never
final.
// Think of them as prototypes only; no implementations are allowed.
}
Defining
an
interface
Interfaces are defined with the following syntax (compare to Java's class
definition):
interface
InterfaceName
[extends
other
interfaces]
{
constant
declarations
abstract
method
declarations
}
The body of the interface contains abstract methods. Since all the methods in an
interface are by definition abstract so the abstract keyword is not required in
specific. Since the interface specifies a set of exposed behaviours, all methods are
implicitly
Thus,
public
{
public.
a
simple
interface
interface
may
be
worker
boolean
void
dowork(Work
w);
earnmoney(Work
w);
}
The member type declarations in an interface are implicitly static, final and public,
but
otherwise
The
...
syntax
they
for
implements
can
be
implementing
InterfaceName[,
Classes
any
may
type
an
of
interface
another
class
or
uses
this
interface,
implement
another,
an
interface.
formula:
...]
...
interface.
For
example,
public
class
Lion
implements
Predator
dowork(work
w)
{
@Override
public
boolean
{
//
programming
to
work
w
(In
case
of
daily
worker)
}
@Override
public
void
earnmoney(Work
w)
{
//
programming
to
earnmoney
Work
w
}
}
If a class implements an interface and does not implement all its methods, it must
be marked as abstract. If a class is abstract, one of its subclasses is expected to
implement its unimplemented methods. Although if any of the abstract class'
subclasses do not implement all interface methods, the subclass itself must be
marked
Example
again
program
as
abstract.
on
interface:
Simple
example
of
Java
interface
In this example, printable interface have only one method, its implementation is
provided
in
the
B
class.
interface
printable
{
void
print();
}
class
B2
implements
printable
{
public
void
print()
{
System.out.println("Welcome
to
learn
Interface
concept
in
core
java");
}
public
static
void
main(String
args[])
new
B2();
{
B2
obj
=
obj.print();
}
}
Execution:
Output: Welcome
to
learn
Interface
concept
Interface
in
core
java
Implementation
Before you can really use an interface, you must implement that interface in some
class. Here is a class that implements the MyInterface interface shown above
Syntax:
public
class
MyInterfaceImpl
implements
MyInterface
{
public
{
void
sayHello()
System.out.println(MyInterface.hello);
}
}
Notice the implements MyInterface part of the above class declaration. This signals
the Java compiler that the MyInterfaceImpl class implements the MyInterface
interface.
A class that implements an interface must implement all the methods declared in
the interface. The methods must have the exact same signature (name +
parameters) as declared in the interface. The class need not to implement
(declare)
the
variables
of
an
interface
instead
only
methods.
This is how a class implements an interface. It has to provide the body of all the
methods
that
are
declared
in
interface.
Here mainly Class implements interface but an interface extends another
interface.
File
public
name
class
:
MerecedsInt
MammalInt.java
implements
Car
{
public
void
start()
{
System.out.println(“Start
the
vehicle");
}
public
void
travel()
{
System.out.println("
vehicle
travels");
}
public
int
noOftries()
{
return
0;
}
public
static
void
main(String
args[])
{
MerecdesInt
m
=
new
MerecdesInt();
m.start();
m.travel();
}
}
Execution
Output:
Merecdes
eats
Merecdes
travels
Example
Program
on
implentation:
interface
MyInterface
{
public
void
method1();
public
void
method2();
}
class
XYZ
implements
MyInterface
{
public
void
method1()
{
System.out.println("implementation
of
method1");
}
public
void
method2()
{
System.out.println("implementation
of
method2");
}
public
static
void
main(String
arg[])
{
MyInterface
obj
=
new
obj.
XYZ();
method1();
}
}
Output:
implementation
of
Examples
of
public
method1
java
abstract
implementations:
class
Vegetable
{
*/////////////
}
public
class
Tomato
extends
Vegetable
{
*////////////
}
Interface
inheritance
When a class extends another class it is called inheritance. The class that extends
is called sub class while the class that is extended is called super class. Any class in
java that does not extend any other class implicitly extends Object class.
By means of inheritance a class gets all the public, protected properties and
methods of the super class, no matter which package the sub class is present in. If
the sub class is present in the same package as that of super class then it gets the
package private properties and methods too. Once the sub class inherits the
properties and methods of super class, it can treat them as if it defined them.
By using inheritance you can reuse existing code. If you have an already written
class (but no source) and it lacks some features then you don’t have to write
everything from scratch. Just extend the class and add a new method that satisfies
your
needs
Sample
Use
Program
extends
keyword
to
inherit
the
super
class
classA
{
//properties
and
methods
of
A
}
class
B
extends
A
{
*////////////////////
}
Method
Overriding
and
Hiding:
Method overriding in object oriented programming, is a feature that allows a
subclass or child class to provide a specific implementation of a method that is
already provided by one of its superclasses or parent classes. The implementation
in the subclass overrides (replaces) the implementation in the superclass by
providing a method that has same name, same parameters or signature, and same
return type as the method in the parent class, only if a method is declared virtual
then derived classes can override this method if they are explicitly declared to
override
the
virtual
base
class
method
with
the
override
keyword.
Sample
Program:
class
Thought
{
public
void
message()
{
System.out.println("I feel like I am diagonally parked in a parallel universe.");
}
}
publicclass
Advice
extends
Thought
{
@Override
public
//
@Override
annotation
void
in
Java
5
is
optional
but
helpful.
message()
{
System.out.println("Warning: Dates in calendar are closer than they appear.");
}
}
Class Thought represents the superclass and implements a method call message().
The subclass Advice inherits every method that could be in the Thought class.
However, class Advice overrides the method message(), replacing its functionality
from
Exceution:
Thought.
Thought
parking
=
new
Thought();
parking.message(); // Prints "I feel like I am diagonally parked in a parallel
universe."
Thought
dates
=
new
Advice();
//
Polymorphism
dates.message(); // Prints "Warning: Dates in calendar are closer than they
appear."
Method
over
loading
in
java:
In same class, if name of the method remains common but the number and type of
parameters are different, then it is called method overloading in Java.
There are nine different ways the print method of the System.out object can be
used.

print.(Object obj)

print.(String s)

print.(boolean b)

print.(char c)

print.(char[] s)

print.(double d)

print.(float f)

print.(int i)
 print.(long l)
When you use the print method in your code the compiler will determine which
method you want to call by looking at the method signature.
For example:
int number = 9;
System.out.print(number);
String text = "nine";
System.out.print(text);
boolean nein = false;
System.out.print(nein);
Each time a different print method is being called because the parameter type
being passed is different. This comes handy at times when the print method will
need to vary dynamically depending on whether it has to deal with a String or
integer or boolean.
Example program:
class overLoading
{
public static void main(String[] args)
{
functionOverload obj = new functionOverload();
obj.add(1,2);
obj.add(\"Life at \", \"?\");
obj.add(11.5, 22.5);
}
}
class functionOverload
{
/* void add(int a, int b) // 1 - A method with two parameters
{
int sum = a + b;
System.out.println(\"Sum of a+b is \"+sum);
} */
void add(int a, int b, int c)
{
int sum = a + b + c;
System.out.println(\"Sum of a+b+c is \"+sum);
}
void add(double a, double b)
{
double sum = a + b;
System.out.println(\"Sum of a+b is \"+sum);
}
void add(String s1, String s2)
{
String s = s1+s2;
System.out.println(s);
}
}
Download