#import <Foundation/Foundation.h>




@protocol Volume // 프로토콜 선언


-(void)up;


-(void)down;


-(void)mute;

@end


@interface TV : NSObject <Volume> { // Volume 프로토콜을 따른다.

    

    int vol;

    

}


@end




@implementation TV


-(void)up { NSLog(@"TV 볼륨을 올립니다"); } // 오버라이드


-(void)down { NSLog(@"TV 볼륨을 내립니다"); }


@end






@interface Radio : NSObject <Volume> {

    

    int vol;

    

}


@end


@implementation Radio


-(void)up { NSLog(@"Radio 볼륨을 올립니다"); } // 오버라이드


-(void)down { NSLog(@"Radio 볼륨을 내립니다"); }


@end


int main (int argc, const char * argv[]) {

    TV* myTV = [[TV alloc] init];

    

    [myTV up];

    [myTV down];

    Radio* myRadio = [[Radio alloc] init];

    

    [myRadio up];

    

    [myRadio down];

        [myRadio release];

    [myTV release];

        return 0;

}


일종의 Java 의 interface 와 비슷.