L’abstraction est l’un des concepts fondamentaux de la programmation orientée objet. L’abstraction définit un modèle pour créer un composant d’application. La mise en œuvre de l’abstraction dépend des fonctionnalités et des processus propres au langage.
1. Qu’est-ce que l’abstraction ?
L’abstraction est le processus de masquage des détails internes d’une application vis-à-vis du monde extérieur. L’abstraction est utilisée pour décrire les choses de manière simple. Elle permet de créer une frontière entre l’application et les programmes clients.
2. L’abstraction dans la vie réelle
L’abstraction est présente dans presque toutes les machines de la vie réelle.
- Votre voiture est un excellent exemple d’abstraction. Vous pouvez démarrer une voiture en tournant la clé ou en appuyant sur le bouton de démarrage. Vous n’avez pas besoin de savoir comment le moteur démarre, quels sont tous les composants de votre voiture. L’implémentation interne et la logique complexe de la voiture sont complètement cachées à l’utilisateur.
- Nous pouvons chauffer notre nourriture au micro-ondes. Nous appuyons sur quelques boutons pour régler la minuterie et le type de nourriture. Finalement, nous obtenons un repas chaud et délicieux. Les détails internes du micro-ondes nous sont cachés. Nous avons accès à la fonctionnalité de manière très simple.
3. Abstraction in OOPS
Les objets sont les éléments fondamentaux de la Programmation Orientée Objet. Un objet contient des propriétés et des méthodes. Nous pouvons les masquer du monde extérieur grâce aux modificateurs d’accès. Nous pouvons ne donner accès qu’aux fonctions et propriétés nécessaires aux autres programmes. C’est la procédure générale pour implémenter l’abstraction en POO.
4. Quels sont les différents types d’abstraction ?
Il existe deux types d’abstraction.
- Abstraction de données
- Abstraction de processus
4.1) Abstraction de données
Lorsque les données de l’objet ne sont pas visibles pour le monde extérieur, cela crée une abstraction de données. Si nécessaire, l’accès aux données de l’objet est fourni via certaines méthodes.

4.2) Abstraction de processus
Nous n’avons pas besoin de fournir des détails sur toutes les fonctions d’un objet. Lorsque nous cachons la mise en œuvre interne des différentes fonctions impliquées dans une opération utilisateur, cela crée une abstraction de processus.

5. Abstraction en Java
Abstraction en Java est mise en œuvre à travers interfaces et classes abstraites. Elles sont utilisées pour créer une implémentation de base ou un contrat pour les classes d’implémentation réelles. Car.java : Interface de base ou classe abstraite
package com.journaldev.oops.abstraction;
public interface Car {
void turnOnCar();
void turnOffCar();
String getCarType();
}
ManualCar.java, AutomaticCar.java : Classes d’implémentation 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;
}
}
Programme utilisateur : Examinons un programme de test où les fonctions de Car seront utilisées.
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());
}
}
Le programme client ne connaît que la voiture et les fonctions qu’elle fournit. Les détails de mise en œuvre interne sont cachés du programme client. Références : Wikipedia, Oracle Docs
Source:
https://www.digitalocean.com/community/tutorials/what-is-abstraction-in-oops