Tutoriels Java

Java ACCUEIL Introduction à Java Java Démarrer Syntaxe Java Commentaires Java Variables Java Types de données Java Conversion de type Java Opérateurs Java Chaînes Java Mathématiques Java Booléens Java Java Si... Sinon Commutateur Java Java While Boucle Java pour la boucle Java Pause/Continuer Tableaux Java

Méthodes Java

Méthodes Java Paramètres de méthode Java Surcharge de méthode Java Portée Java Récursivité Java

Cours Java

POO Java Classes/Objets Java Attributs de classe Java Méthodes de classe Java Constructeurs Java Modificateurs Java Encapsulation Java Paquets Java/API Héritage Java Polymorphisme Java Classes internes Java Abstraction Java InterfaceJava Énumérations Java Entrée utilisateur Java Data Java Java ArrayList Liste liée Java Java HashMap Jeu de hachage Java Itérateur Java Classes d'encapsulation Java Exception Java Java RegEx Fils Java Java Lambda

Gestion des fichiers Java

Fichiers Java Java créer/écrire des fichiers Fichiers de lecture Java Java supprimer des fichiers

Comment Java

Additionner deux nombres

Référence Java

Mots clés Java Méthodes de chaîne Java Méthodes mathématiques Java

Exemples Java

Exemples Java Compilateur Java Exercices Java Quizz Java Certificat Java


Abstraction Java


Classes abstraites et méthodes

L' abstraction de données est le processus consistant à masquer certains détails et à ne montrer que les informations essentielles à l'utilisateur.
L'abstraction peut être réalisée avec des classes abstraites ou des interfaces (sur lesquelles vous en apprendrez plus dans le chapitre suivant).

Le abstractmot-clé est un modificateur de non-accès, utilisé pour les classes et les méthodes :

  • Classe abstraite : est une classe restreinte qui ne peut pas être utilisée pour créer des objets (pour y accéder, elle doit être héritée d'une autre classe).

  • Méthode abstraite : ne peut être utilisée que dans une classe abstraite et n'a pas de corps. Le corps est fourni par la sous-classe (héritée de).

Une classe abstraite peut avoir à la fois des méthodes abstraites et régulières :

abstract class Animal {
  public abstract void animalSound();
  public void sleep() {
    System.out.println("Zzz");
  }
}

A partir de l'exemple ci-dessus, il n'est pas possible de créer un objet de la classe Animal :

Animal myObj = new Animal(); // will generate an error

Pour accéder à la classe abstraite, elle doit être héritée d'une autre classe. Convertissons la classe Animal que nous avons utilisée dans le chapitre Polymorphisme en une classe abstraite :

Rappelez-vous du chapitre Héritage que nous utilisons le mot- extendsclé pour hériter d'une classe.

Exemple

// Abstract class
abstract class Animal {
  // Abstract method (does not have a body)
  public abstract void animalSound();
  // Regular method
  public void sleep() {
    System.out.println("Zzz");
  }
}

// Subclass (inherit from Animal)
class Pig extends Animal {
  public void animalSound() {
    // The body of animalSound() is provided here
    System.out.println("The pig says: wee wee");
  }
}

class Main {
  public static void main(String[] args) {
    Pig myPig = new Pig(); // Create a Pig object
    myPig.animalSound();
    myPig.sleep();
  }
}

Pourquoi et quand utiliser des classes et des méthodes abstraites ?

Pour assurer la sécurité, masquez certains détails et affichez uniquement les détails importants d'un objet.

Remarque : L'abstraction peut également être réalisée avec Interfaces , dont vous en apprendrez plus dans le chapitre suivant.