Vidéo: Java #19 - classes abstraites 2024
Une classe abstraite en Java est une classe qui contient un ou plusieurs méthodes abstraites , qui sont simplement des déclarations de méthode sans corps - c'est-à-dire sans code exécutable qui implémente la classe ou la méthode. Une méthode abstraite est comme un prototype pour une méthode, déclarant le type de retour et la liste de paramètres de la méthode mais ne fournissant pas une implémentation réelle de la méthode. Vous ne pouvez pas instancier une classe abstraite. Cependant, vous pouvez créer une sous-classe qui étend une classe abstraite et fournit une implémentation des méthodes abstraites définies par la classe abstraite. Vous pouvez instancier la sous-classe.
public abstract return-type nom-méthode (parameter-list);
Voici un exemple:
public abstrait int hit (int batSpeed);
Pour créer une classe abstraite, vous utilisez le résumé sur la déclaration de classe et incluez au moins une méthode abstraite. Par exemple:
Public abstract class Balle {public abstrait int hit (int batSpeed);}
Vous pouvez créer une sous-classe à partir d'une classe abstraite comme ceci:
Lorsque vous sous-classez une classe abstraite, la sous-classe doit fournir un implémentation pour chaque méthode abstraite dans la classe abstraite. En d'autres termes, il doit remplacer chaque méthode abstraite.
Les classes abstraites sont utiles lorsque vous voulez créer un type générique utilisé comme superclasse pour deux ou plusieurs sous-classes, mais la superclasse elle-même ne représente pas un objet réel. Si tous les employés sont salariés ou horaires, par exemple, il est logique de créer une classe Employé abstraite, puis de l'utiliser comme classe de base pour les sous-classes SalariedEmployee et HourlyEmployee.
Toutes les méthodes d'une classe abstraite ne doivent pas forcément être abstraites. Une classe peut fournir une implémentation pour certaines de ses méthodes mais pas pour d'autres. En fait, même si une classe n'a aucune méthode abstraite, vous pouvez toujours la déclarer comme abstraite. (Dans ce cas, cependant, la classe ne peut pas être instanciée.)
-
Une méthode privée ne peut pas être abstraite. Toutes les méthodes abstraites doivent être publiques.
-
Une classe ne peut être à la fois abstraite et finale.