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;

    }

  • 相关阅读:
    总结:关于作用域的经典面试题
    解决JS拖拽出现的问题
    JS正则(3)总结
    JS正则(2)对正则的理解
    JS 闭包 正则(1)
    JS Date对象
    笔记
    9.13笔记
    9.12学习笔记
    9.11学习笔记
  • 原文地址:https://www.cnblogs.com/flyingdreaming/p/polymorphic.html
Copyright © 2011-2022 走看看