La abstracción es uno de los conceptos centrales de la Programación Orientada a Objetos. La abstracción define un modelo para crear un componente de aplicación. La implementación de la abstracción depende de las características y procesos específicos del lenguaje.
1. ¿Qué es la Abstracción?
La abstracción es el proceso de ocultar los detalles internos de una aplicación al mundo exterior. La abstracción se utiliza para describir cosas en términos simples. Se utiliza para crear un límite entre la aplicación y los programas del cliente.
2. Abstracción en la Vida Real
La abstracción está presente en casi todas las máquinas de la vida real.
- Tu coche es un gran ejemplo de abstracción. Puedes arrancar un coche girando la llave o presionando el botón de inicio. No necesitas saber cómo se está iniciando el motor, qué componentes tiene tu coche. La implementación interna y la lógica compleja del coche están completamente ocultas al usuario.
- Podemos calentar nuestra comida en el microondas. Presionamos algunos botones para ajustar el temporizador y el tipo de comida. Finalmente, obtenemos una comida caliente y deliciosa. Los detalles internos del microondas están ocultos para nosotros. Se nos ha dado acceso a la funcionalidad de una manera muy simple.
3. Abstracción en OOPS
Los objetos son los bloques de construcción de la Programación Orientada a Objetos. Un objeto contiene propiedades y métodos. Podemos ocultarlos del mundo exterior mediante modificadores de acceso. Podemos proporcionar acceso solo a las funciones y propiedades necesarias para otros programas. Este es el procedimiento general para implementar la abstracción en OOPS.
4. ¿Cuáles son los diferentes tipos de abstracción?
Existen dos tipos de abstracción.
- Abstracción de Datos
- Abstracción de Proceso
4.1) Abstracción de Datos
Cuando los datos del objeto no son visibles para el mundo exterior, se crea una abstracción de datos. Si es necesario, se proporciona acceso a los datos del objeto a través de algunos métodos.

4.2) Abstracción de Proceso
No necesitamos proporcionar detalles sobre todas las funciones de un objeto. Cuando ocultamos la implementación interna de las diferentes funciones involucradas en una operación de usuario, se crea una abstracción de proceso.

5. Abstracción en Java
La abstracción en Java se implementa a través de interfaces y clases abstractas. Se utilizan para crear una implementación base o contrato para las clases de implementación real. Car.java: Interfaz base o clase abstracta
package com.journaldev.oops.abstraction;
public interface Car {
void turnOnCar();
void turnOffCar();
String getCarType();
}
ManualCar.java, AutomaticCar.java: clases de implementación de Car.
package com.journaldev.oops.abstraction;
public class ManualCar implements Car {
private String carType = "Manual";
@Override
public void turnOnCar() {
System.out.println("turn on the manual car");
}
@Override
public void turnOffCar() {
System.out.println("turn off the manual car");
}
@Override
public String getCarType() {
return this.carType;
}
}
package com.journaldev.oops.abstraction;
public class AutomaticCar implements Car {
private String carType = "Automatic";
@Override
public void turnOnCar() {
System.out.println("turn on the automatic car");
}
@Override
public void turnOffCar() {
System.out.println("turn off the automatic car");
}
@Override
public String getCarType() {
return this.carType;
}
}
Programa de Usuario: Veamos un programa de prueba donde se utilizarán las funciones del Car.
package com.journaldev.oops.abstraction;
public class CarTest {
public static void main(String[] args) {
Car car1 = new ManualCar();
Car car2 = new AutomaticCar();
car1.turnOnCar();
car1.turnOffCar();
System.out.println(car1.getCarType());
car2.turnOnCar();
car2.turnOffCar();
System.out.println(car2.getCarType());
}
}
El programa cliente solo conoce el Car y las funciones que el Car proporciona. Los detalles de implementación interna están ocultos para el programa cliente. Referencias: Wikipedia, Documentación de Oracle
Source:
https://www.digitalocean.com/community/tutorials/what-is-abstraction-in-oops