Next: Inclusion de protocoles Up: Protocoles Previous: Protocoles informels

Protocoles formels

Objective-C permet de définir de façons formel un protocole:

@protocol ProtocolName Déclarations de méthodes @end

Par exemple, le protocole de décompte peut être déclaré:

@protocol ReferenceCounting - setRefCount:(int)count; - (int)refCount; - incrementCount; - decrementCount; @end

Les classes adoptent des protocoles en listant leurs noms entre chevrons après le nom de la super classe:

@interface ClassName : ItsSuperclass < protocol list >

ainsi que les catégories :

@interface ClassName ( Category ) < protocol list >

Les noms de protocoles sont séparées par des virgules. Les méthodes déclarées dans des protocoles adoptés ne sont pas déclarées ailleur dans l'interface de la classe ou de la catégorie.

Par exemple la classe suivante:

@interface Formatter : Object < Archives,Enjoliver >

adopte les deux protocoles Archives et Enjoliver.

Une classe qui adopte un protocole est obligée d'implémenter toutes les méthodes que le protocole déclare. Le compilateur engendre un Warning sinon. La classe Formatter au dessus doit définir toutes les méthodes déclarées dans les deux protocoles en plus de ces propres méthodes.



Dominique REVUZ
Vendredi 21 février 1997 17:27:12
Une Bug Un mail Merci