Thanks fred and Mark for your replies.
Your post brings out the concept of Abstract Classes, does the concept of abstraction related to Abstract classes.
According to the article on Wikipedia, Abstraction means -
"In computer science, abstraction is a mechanism and practice to reduce and factor out details so that one can focus on a few concepts at a time.
The following English definition of abstraction helps to understand how this term applies to Computer Science, IT and Objects - i.e. abstraction is:
A concept or idea not associated with any specific instance"
As the first part of the definition details about "reducing and factoring about details" - how is this achieved in JAVA.
Secondly, according to the second part of the definition does Abstraction means defining classes.
I found these definitions almost everywhere, so does abstraction really mean hiding implementation details and if it does, then does it also brings out the concept of interfaces and abstract classes which only provides method signatures and hide out the actual implementation from the end user.