//-------接口定义
@protocol Printing
-(void) print;
@end
---------
//----实现接口 Printing -------
//----接口中的print 方法不必写出来
@interface Fraction : NSObject <Printing,NSCopying> {
int numerator;
int denominator;
}
-(Fraction*) initWithNumerator:(int)n denominator:(int)d;
-(int) numerator;
-(int) denominator;
-(void) setNumerator:(int)n;
-(void) setDenominator:(int)n;
-(void) setNumeratorAndDenominator:(int) num
andDeno:(int) den;
@end
@interface Complex : NSObject<Printing>{
double real;
double image;
}
-(Complex*) initWithReal: (double) r andImage: (double) i;
-(void) setReal: (double) r;
-(void) setImage: (double) i;
-(void) setReal: (double) r andImage: (double) i;
-(double) real;
-(double) image;
@end
Fraction *frac = [[Fraction alloc] initWithNumerator: 3 denominator: 10];
Complex *comp = [[Complex alloc] initWithReal: 5 andImage: 15];
id <Printing> printable;
copyPrintable = frac;
// true
if ( [frac conformsToProtocol: @protocol( NSCopying )] == YES ) {
printf( "Fraction conforms to NSCopying/n" );
}
if ( [frac conformsToProtocol: @protocol( Printing )] == YES ) {
printf( "Fraction conforms to Printing/n" );
}
// false
if ( [comp conformsToProtocol: @protocol( NSCopying )] == YES ) {
printf( "Complex conforms to NSCopying/n" );
}
//true
if ( [comp conformsToProtocol: @protocol( Printing )] == YES ) {
printf( "Complex conforms to Printing/n" );
}
// free memory
[frac release];
[comp release];
============接口的定义于实现