美文网首页
iOS super关键字

iOS super关键字

作者: 三岁就很乖 | 来源:发表于2016-08-17 15:09 被阅读112次
    super:是编译器指示符,仅仅是一个标志,并不是指针,仅仅是标志的当前对象去调用父类的方法,本质还是当前对象调用
    class:获取方法调用者的类对象
    

    例如1、:创建一个类Person
    再创建一个字类SonPerson继承自Person

    SonPerson中输出:

     NSLog(@"%@ %@ %@ %@",[self class],[self superclass],[super class],[super superclass]);
    
    

    结果:

    //  SonPerson Person SonPerson Person
    

    如2、在子类SonPerson中调用父类中的方法+ (void)text

    在子类中需要这样调用[super text];

    在父类中实现

    + (void)text
    {
        // super:是编译器指示符,仅仅是一个标志,并不是指针,仅仅是标志的当前对象去调用父类的方法,本质还是当前对象调用
        // class:获取方法调用者的类对象
        NSLog(@"%@ %@ %@ %@",[self class],[self superclass],[super class],[super superclass]);
       
      }  
        
    

    输出结果如下

     // SonPerson Person SonPerson Person
    
    

    注意:

    super:是编译器指示符,仅仅是一个标志,并不是指针,仅仅是标志的当前对象去调用父类的方法,本质还是当前对象调用
    super:并不是让父类对象调用方法,调用者还是本身
    class:获取方法调用者的类
    superclass:获取方法调用者的父类
    
    

    相关文章

      网友评论

          本文标题:iOS super关键字

          本文链接:https://www.haomeiwen.com/subject/qrmmsttx.html