Ejemplo

Abstracción en acción ☕

Sin abstracción ❌


public class Cafetera {
    public void molerGranos() {
        System.out.println("Moliendo granos de café...");
    }

    public void hervirAgua() {
        System.out.println("Hirviendo agua...");
    }

    public void mezclarCafe() {
        System.out.println("Mezclando café con agua...");
    }

    public void servirTaza() {
        System.out.println("Sirviendo café en la taza...");
    }
}

public class Main {
    public static void main(String[] args) {
        Cafetera c = new Cafetera();
        // El usuario debe recordar TODOS los pasos
        c.molerGranos();
        c.hervirAgua();
        c.mezclarCafe();
        c.servirTaza();
    }
}

Sin abstracción ❌

public class Cafetera {
    public void molerGranos() {
        System.out.println("Moliendo granos de café...");
    }

    public void hervirAgua() {
        System.out.println("Hirviendo agua...");
    }

    public void mezclarCafe() {
        System.out.println("Mezclando café con agua...");
    }

    public void servirTaza() {
        System.out.println("Sirviendo café en la taza...");
    }
}

Con abstracción ✅

public class Cafetera {
    // Métodos privados → ocultamos los detalles
    private void molerGranos() { 
       System.out.println("Moliendo granos..."); }
    
    private void hervirAgua() { 
       System.out.println("Hirviendo agua..."); }
   
    private void mezclarCafe() { 
       System.out.println("Mezclando café..."); }
   
    private void servirTaza() { 
       System.out.println("Sirviendo café..."); }

    // Método público → interfaz sencilla
    public void hacerCafe() {
        molerGranos();
        hervirAgua();
        mezclarCafe();
        servirTaza();
    }
}

Con abstracción ✅

public class Main {
    public static void main(String[] args) {
        Cafetera c = new Cafetera();
        // El usuario solo necesita UNA instrucción
        c.hacerCafe();
    }
}

Resultado ☕️

Moliendo granos...
Hirviendo agua...
Mezclando café...
Sirviendo café...