when to use abstract class and when to use interface?

Answer Posted / rod

an excelent answer to this question is given by the
following link http://java.sys-con.com/node/36250

apart from the fact that it treats a motor and engine as
equivalent identical items when they are distinct, one
needing elec the other petrol or steam, but the analogy
still holds and is very well illustrated.

In short we use abstract classes to reduce complexity and
duplication, whilst we use interfaces to allow changes in
design without breaking the class hierarchy.

He uses an abstract motor class as a base class to both
solar powered and battery powered vehicles. But what happens
if you must then
describe a third class of vehicle which is a hybrid of these
2 types, you cannot inherit from them both to pick up the
methods of each class so you are stuck having to break the
class hierarchy and redesign.

However If you had used interfaces, you could implement both
the battery and solar car's ability to get the charge time
and minimum light to operate respectively from multiple
interfaces.

Is This Answer Correct ?    12 Yes 4 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Mention some interfaces implemented by linked list in java.

788


Is singleton class immutable?

740


What is the difference between length and length () in java?

733


What is the purpose of the runtime class in java programming?

809


What are the common uses of "this" keyword in java ?

800


What are invisible components?.

1921


I want my class to be developed in such a way that no other class (even derived class) can create its objects. How can I do so?

763


What are the methods used to implement for the key object in the hash map?

807


Can singleton class be cloned?

829


What occurs when an object is constructed?

785


Can we override static methods in java?

834


What is set and get methods in java?

755


What is the difference between multiple processes and multiple threads?

815


What is google full form?

775


What is the difference between method overriding and overloading?

851