Abstraction is hiding complex implementation details and showing only essential features of an object.
Abstraction focuses on what an object does instead of how it does it. In Java, this is achieved through abstract classes and interfaces. For example, an abstract class 'Payment' might declare a method 'processPayment()' without implementing it, leaving the details to subclasses like 'CreditCardPayment'.