iOS多态 动态绑定_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > iOS多态 动态绑定

iOS多态 动态绑定

 2013/7/17 17:13:41  Flying-deam-ios  博客园  我要评论(0)
  • 摘要:多态和动态绑定是为了解决父类调用子类的问题首先,声明三个类aabbcc都继承于fist类#import<Foundation/Foundation.h>@interfacefist:NSObject{SELname;}-(void)print;@end@implementationfist-(void)print{NSLog(@"我是aa");}@end@interfaceaa:fist-(void)nihao;@end@implementationaa-(void)nihao
  • 标签:iOS

多态和动态绑定是为了解决父类调用子类的问题   

  首先,声明三个类aa bb cc 都继承于fist类

#import <Foundation/Foundation.h>

@interface fist : NSObject

{

    SEL name;

}

-(void)print;

@end

@implementation fist

-(void)print

{

    NSLog(@"我是aa");

}

@end

 

@interface aa : fist

-(void)nihao;

@end

@implementation aa

 

-(void)nihao

{

    NSLog(@"buhdddddddddao");

}

 

@end

 

 

@interface bb : fist

-(void)nihao;

@end

@implementation bb

 

-(void)nihao

{

    NSLog(@"我是bb");

}

 

@end

@interface cc : aa

-(void)nihao;

@end

@implementation cc

 

-(void)nihao

{

    NSLog(@"我是cc");

}

 

@end

 

 

 

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

{

 

    @autoreleasepool {

        

        aa *a=[[aa alloc] init];//声明aa的对象

        bb *b=[[bb alloc] init]; //'''

        cc *c=[[cc alloc] init];

                

        

        fist *dd[3]={a,b,c};//可以用父类  id 或者NSobject

  for (int i=0; i<3; i++) {

             SEL gong;

            gong=@selector(nihao);//定一个选择器

            if ([dd[i] respondsToSelector:gong]==YES) {//逐个遍历出来

                [dd[i] performSelector:gong];

                [dd[i] release];

     }

            }

                 

        }

 

        

    }

    return 0;

}

 

上一篇: Android 避免APP启动闪黑屏(Theme和Style) 下一篇: 没有下一篇了!
发表评论
用户名: 匿名