While I can answer code related questions on Inheritance,Polymorphism and Encapsulation I find that I am not able to explain abstraction satisfactorily/comprehensively.
Abstraction( in my own words) is exposing only some attributes and behaviour relevant for a particular purpose and hiding all other details to reduce complexity. This looks like an explanation of how we define a class(with high cohesion and low coupling).
Encapsulation is an implementation of Abstraction. Abstract classes and Interfaces are other implementations. Are there other possible implementations? Are there different layers of abstraction in
Java?
I dont think Oracle tutorials give explanation about Abstraction. I am looking for a consolidated article with Java related concepts..