Abstraction in Java can be achieved through abstract classes and interfaces. Abstract classes can contain both abstract and concrete methods, whereas interfaces contain only abstract methods. Abstract classes must be extended and abstract methods implemented, while interfaces must be implemented by classes with implementation of all abstract methods. Examples are provided of abstract classes with abstract and concrete methods, and interfaces with single and multiple inheritance through interface implementation.