VIRTUAL |
Virtuel |
---|---|
Turbo Pascal 5.5+ |
Syntaxe
nom=Object ... Procedure ...; Virtual; Function ...; Virtual; ... End; |
Paramètres
Nom | Description |
---|---|
nom | Ce paramètre permet d'indiquer le nom de l'objet. |
... | Ce paramètre permet d'indiquer les définitions courantes. |
Description
Ce mot réservé permet de définir une fonction ou une procédure pouvant être remplacer par une nouvelle fixation dans la POO (Programmation Orienté Objet).
Remarques
- Une méthode virtuelle est une méthode dont l'appel est lié à son code au moment de l'exécution, par un processus appelé liaison tardive.
- Déclarer une méthode comme virtuelle permet aux méthodes portant le même nom d'être implémentées de différentes manières au sein d'une hiérarchie de types d'objets.
- Pour rendre une méthode virtuelle, suivez sa déclaration dans le type d'objet avec un point-virgule, le mot réservé Virtual et un autre point-virgule, comme ceci :
procedure Method(param1, Param2:Integer);virtual; |
Exemple
Cet exemple permet de remplacer la méthode déclarer dans la classe parente :
- Program VirtualSamples;
-
- Type
- MonObjetA=Object
- Constructor Init;
- Procedure Run;
- Procedure Other;Virtual;
- Function getValue:Char;Virtual;
- End;
-
- MonObjetB=Object(MonObjetA)
- Function getValue:Char;Virtual;
- End;
-
- Function MonObjetA.getValue:Char;Begin
- getValue := 'a';
- End;
-
- Function MonObjetB.getValue:Char;Begin
- getValue := 'b';
- End;
-
- Constructor MonObjetA.Init;Begin
- WriteLn('Initialisation de l''objet');
- End;
-
- Procedure MonObjetA.Run;Begin
- WriteLn('Exécution de l''objet');
- End;
-
- Procedure MonObjetA.Other;Begin
- WriteLn('Objet remplacable');
- End;
-
- Var
- Objet:MonObjetB;
-
- BEGIN
- Objet.Init;
- Objet.Run;
- Objet.Other;
- WriteLn('Valeur = ',Objet.getValue);
- END.
on obtiendra le résultat suivant :
Initialisation de l'objetExécution de l'objet
Objet remplacable
Valeur = b
Dernière mise à jour : Dimanche, le 8 février 2015