Re: doubt in java
On 4/2/2012 3:42 AM, bright jose wrote:
What is interface and use?...Plz explain with one example..
An interface specifies one or more method names and their
parameter lists and return types (and any checked exceptions they
might throw). But the interface omits all details of how the
methods are actually implemented.
For example, the interface Iterable specifies one method
named iterator(), taking no arguments and returning an Iterator
and throwing no checked exception. If you have an instance of
an class that implements Iterable, you know you can call the
instance's iterator() method and get back an Iterator.
Why is this useful? Because ArrayList implements Iterable,
and so does LinkedList, and Vector and others. So do HashSet
and Collection and DelayQueue and ConcurrentSkipList and ...
These classes have wildly different implementations, but one
thing they have in common is the ability to visit their contents
one by one -- and they express this ability by implementing Iterable.
And, because they implement Iterable, you do not need to write one
stretch of code to traverse an ArrayList and another to traverse a
HashSet and another to traverse a SynchronousQueue. All you need to
do is write code to deal with an Iterable, and suddenly you don't
need to care which kind of Iterable object you're dealing with: it's
an Iterable, so you can call iterator() on it and get an Iterator,
and use that Iterator object to do the work -- and you don't need to
care about which particular kind of object you're iterating over.
A shortcoming of interfaces is the "shallowness" of what they
specify: Method names and signatures, and that's all. *Any* class
that has an `Iterator iterator()' method could claim to implement
the Iterable interface, even if the returned Iterator did nothing
useful -- even if the returned Iterator was always null, or if the
iterator() method called System.exit(42) and never returned anything!
Interfaces can specify names and forms that the implementing classes
must provide, but they are not able to specify "intent."