Le modificateur abstract est utilisé dans le but d'identifier des classes et des méthodes abstraites.

[modificateurs] abstract class NomClasse {
  ...
}

L'implémentation d'une classe abstraite est remise à ses sous-classes.

Une classe abstraite ne peut seule, avoir d'instances puisqu'elle ne contient que des informations incomplètes.

Une méthode abstraite ne possède pas de bloc d'instructions encadré par des accolades, lequel est remplacé par un séparateur point-virgule (;).

abstract Type uneMethode([Type Argument...]);

Une méthode abstraite peut posséder un à plusieurs arguments.

Lorsqu'une classe étend une classe abstraite, elle doit implémenter toutes les méthodes abstraites de cette dernière en les outrepassant (overriden), soit de redéclarer la méthode avec les mêmes arguments mais en lui fournissant un bloc d'instructions. Sinon, elles doivent être à nouveau déclarées comme abstraites dans la classe étendue.

Le modificateur final ne peut être utilisé avec des classes ou des méthodes abstraites, sans quoi il serait impossible d’étendre les classes et d’outrepasser les méthodes.

Pour en savoir plus, consultez le chapître Les classes abstraites.