hi frnds
Please give the ans with your experience it will be good for me so which I can be explain the interviwer..
1..i know abstract class and interface but I want to know that
Give the example for both and where u used in your project
And we can use abstract class compare to interface???
Interviwered asked me u can use abstract class so why u used interface in your application…
Please share the ans with your concept///I searched in internet but I confused???
Saillesh PawarPosted Mar 18, 2016, 3:43 AM
Rajeesh MenothPosted Mar 18, 2016, 1:06 AM
Amit Kumar SinghPosted Mar 18, 2016, 12:58 AM
Real World:
You have an Animal class.
It is an abstract class, because you cannot instantiate a generic
"Animal", but it provides base functionality.
You have many devired classes of Animal.
You have HomoSapiens, Platypus, Penguin (which extends Bird,
another subclass of Animal), Giraffe, Housefly, etc.
Each of these are concrete classes that may be instantiated
(of course, there are several levels of abstract classes between
these and Animal (like Chordata, etc.) Now you want to make
something fly.
What can fly?
Birds and Houseflys (among others), so these classes should provide
similar functionality, even though they are widely spaced on our
inheritance tree.
The solution?
Make them use interfaces. Bird and Housefly can not both implement
the Flyer interface, so whenever we want something to fly,
we can use a Flyer object, not caring whether it's a Bird or
a Housefly. Likewise, Penguins and Playtpuses can implement
the Swimmer interface (and Penguin should throw an
illegalOperationException in any of its Flyer
since Penguins cannot fly). As far as business examples,
I have a persistance engine that will work against any
data sourcer (XML, ASCII (delimited and fixed-length),
various JDBC sources (Oracle, SQL, ODBC, etc.)
I created a base, abstract class to provide common
in this persistance, but instantiate the appropriate "Port"
(subclass) when persisting my objects. (This makes development
of new "Ports" much easier, since most of the work is done
the superclasses; especially the various JDBC ones; since
I not only do persistance but other things [like table generation],
I have to provide the various differences for each database.)
The best business examples of Interfaces are the Collections.
I can work with a java.util.List without caring how it is
implemented; having the List as an abstract class does not
make sense because there are fundamental differences in how
an ArrayList works as opposed to a LinkedList. Likewise, Map
and Set. And if I am just working with a group of objects and
don't care if it's a List, Map, or Set, I can just use the
collection interface. Hope that this helps