Nous appelons la classe modifiée avec le mot-clé abstract une classe abstraite , c'est-à-dire une classe abstraite , par exemple :
classe abstraiteA{…}
Nous appelons les méthodes modifiées avec le mot-clé abstract méthodes abstraites , c'est-à-dire méthodes abstraites , par exemple :
abstrait int max(int x,int y);
Avis:
1) Pour les méthodes abstraites, seule la déclaration est autorisée et l'implémentation n'est pas autorisée, c'est-à-dire qu'il n'y a pas de corps de méthode, et final et abstract ne peuvent pas être utilisés pour modifier une méthode ou une classe en même temps, et static est n'est pas autorisé à modifier la méthode abstraite, c'est-à-dire que la méthode abstraite doit être une méthode d'instance.
2) Les classes abstraites peuvent avoir des méthodes abstraites ou des méthodes non abstraites, mais les classes non abstraites ne peuvent pas avoir de méthodes abstraites.
Par exemple : la méthode max() de la classe A est une méthode abstraite et la méthode min() est une méthode normale (méthode non abstraite).
abstractclassA{abstractintmax(intx,inty);intmin(intx,inty){returnx<y?x:y;}}
Pour les classes abstraites, vous ne pouvez pas utiliser l'opérateur new pour créer des objets de cette classe. Si une classe non abstraite est une sous-classe d'une classe abstraite, elle doit alors remplacer la méthode abstraite de la classe parent et donner le corps de la méthode. qu'il ne peut pas. La raison pour laquelle il est autorisé d'utiliser final et abstract pour modifier une méthode ou une classe en même temps.
Nous pouvons utiliser la classe abstraite pour déclarer un objet. Bien que l'objet ne puisse pas être créé à l'aide de l'opérateur new, l'objet peut devenir un objet upcast de son objet de sous-classe, afin que l'objet puisse appeler la méthode remplacée par la sous-classe.
Remarque : Une classe abstraite ne peut pas avoir de méthode abstraite. Si une classe abstraite est une sous-classe de la classe abstraite, elle peut soit remplacer la méthode abstraite de la classe parent, soit hériter de la méthode abstraite de la classe parent.