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;

    }

  • 相关阅读:
    Android存储数据方式(转)
    Android实现双进程守护 (转)
    Android DOM、SAX、Pull解析XML(转)
    TCP/IP和Socket的关系(转)
    Socket通信原理和实践
    [转]Android中Intent传递对象的两种方法(Serializable,Parcelable)
    内存堆和栈的区别
    hdu 1754 线段树
    hdu 1166 线段树
    zoj 3686 线段树
  • 原文地址:https://www.cnblogs.com/flyingdreaming/p/polymorphic.html
Copyright © 2011-2022 走看看