¿Cómo se logra la abstracción en Java?