iOS super关键字

2016-08-17  本文已影响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:获取方法调用者的父类

上一篇下一篇

猜你喜欢

热点阅读