ABSTRACT |
Abstrait |
---|---|
Delphi/Kylix/Lazarus |
Syntaxe
function method(liste des parametres):typededonnees; Abstract; |
procedure method(liste des parametres); Abstract; |
Paramètres
Nom | Description |
---|---|
typededonnees | Ce paramètre permet d'indiquer le type de données |
method | Ce paramètre permet d'indiquer le nom de la méthode |
liste des parametres | Ce paramètre permet d'indiquer la liste des paramètres de la méthode |
Description
Ce mot réservé permet d'indiquer une méthode abstraite, laquelle n'est pas définit dans la classe où elle est indiqué.
Remarques
- Une classe «Abstract» est surnommé classe virtuelle, car nous ne sommes pas au point de la mise en oeuvre de la classe mais uniquement à sa définition d'entête.
- Si vous essayez d'appeler une méthode abstraite, le compilateur appellera la routine AbstractErrorProc. Si celle-ci n'est pas présente, un exception EAbstractError ou une erreur d'exécution 210 sera provoqué.
- Si une classe dérivée ne remplace pas une méthode abstraite, vous pouvez l'omettre de la déclaration de classe ou déclarer la méthode avec les directives override et abstract (dans cet ordre). Ce dernier est préférable car il ne laisse manifestement pas le lecteur se demander si l'omission était délibérée ou non.
- Si vous essayez de construire un objet et que le compilateur peut dire que la classe a des méthodes abstraites, le compilateur émet un avertissement. Habituellement, un tel avertissement indique l'une des 2 erreurs suivantes : premier cas, le programmeur oublie d'intégrer une méthode abstraite dans une classe dérivée, ou deuxième cas vous essayez de créer une instance d'une classe de base alors que vous devriez créer une instance de une classe dérivée.
Exemple
Voici un exemple de l'utilisation de ce mot réservé :
- Program AbstractSamples;
-
- {$APPTYPE CONSOLE}
-
- Uses SysUtils;
-
- Type
- MonObjet=Object
- Constructor Init;
- Procedure Run;
- Procedure Other;Virtual; Abstract;
- End;
-
- Constructor MonObjet.Init;Begin
- WriteLn('Initialisation de l''objet');
- End;
-
- Procedure MonObjet.Run;Begin
- WriteLn('Exécution de l''objet');
- End;
-
- Var
- Objet:MonObjet;
-
- BEGIN
- Objet.Init;
- Objet.Run;
- END.
on obtiendra le résultat suivant :
Initialisation de l'objetExécution de l'objet
Voir également
Langage de programmation - Structure de données - Les types abstraits
Langage de programmation - Delphi/Kylix/Lazarus - Référence des variables - AbstractErrorProc
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Dynamic
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Function
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Inherited
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Overload
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Override
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Procedure
Langage de programmation - Delphi/Kylix/Lazarus - Références de mots réservés (mots clefs) - Virtual