What is Abstraction ?

Abstraction is the concept of hiding irrelevant details.In other words make complex system simple by hiding the unnecessary detail from the user. Abstract class specifies what functionality is provided but not how that functionality is provided. For example one does not want to understand how engine works. Similarly one does not have to understand the internal implementation of the software objects. Abstraction provides a way to hide the less essential properties so as to reduce complexity and increase efficiency. Abstraction Example : Engine and Driver.

                                             abstraction in java

Like Driver is focus on steering of the car not on working functionality of engine.Abstraction main advantage is that every user will get data according to their exact requirement. User will not get confused with unnecessary data. Abstraction in Java or Object oriented programming is a way to segregate implementation from interface. Abstraction in Java is achieved by using interface and abstract class in Java. An interface or abstract class is something which is not concrete , something which is incomplete.