INTERFACE
Dans le chapitre précédent, nous avons vu que nous pouvons déclarer des méthodes abstraites dans une classe mère. Les méthodes peuvent ensuite être définies dans les classes enfants.Nous pouvons créer une interface au lieu d'avoir une classe avec de nombreuses méthodes abstraites. Une interface peut ressembler à une classe mais c'en est pas une. Une interface permet de déclarer plusieurs méthodes sans les définir. Elles sont très utilisées pour les objets com.
En delphi comparativement au langage C++ on peut seulement hériter d'une seule classe. Il est impossible de faire de l'héritage multiple (image ci-dessus) avec delphi tout comme java. C'est là que les interfaces deviennent intéressantes.
La structure d'une interface ressemble à
type nomInterface = interface (interfaceAncêtre) ['{GUID}'] listeMembres end;La longue série de lettres et de chiffres dans l'interface est un identifiant numérique. L'interfaceAncêtre et le GUID sont facultatifs. Il est nécessaire d'en avoir un pour pouvoir faire des «QueryInterface» et des cast dynamiques en utilisant cette interface, il n'est pas nécessaire pour le reste.
Il faut appuyer sur «Ctrl+Shift+G» dans le l'éditeur de code pour générer un GUID.
Un exemple d'une interface
type IEncrypt = Interface ['{F26B6D20-F718-11D5-8E23-BCD4F752513A}'] //GUID function Encrypt(S: String; Key: Word): String; function Decrypt(S: String; Key: Word): String; end;Il est impossible de déclarer des méthodes virtual, dynamic, abstract ou override étant donné que les interfaces n'implantent pas les méthodes. Seulement des propriétés et des méthodes peuvent être utilisés dans les interfaces.
Code source disponible ici
Aucun commentaire:
Enregistrer un commentaire