zoukankan      html  css  js  c++  java
  • 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;

    }

  • 相关阅读:
    计算机的时空观以及俩者间的相互转换
    发送一个记录数据包
    流的压缩与解压缩函数
    通过自定义消息调用主窗体的菜单项
    多标签窗体的释放一法
    记录数组存出到文件和从文件导入
    变体记录
    内存流的使用
    用流读写结构化文件
    下拉框、下拉控件之Select2
  • 原文地址:https://www.cnblogs.com/flyingdreaming/p/polymorphic.html
Copyright © 2011-2022 走看看