关于class,superClass,super的解释

相信在APP开发中我们多数使用的self,但是在面试的时候,会经常问到class,superclass,super这些区别

解释 class,superClass,super

  • class:获取当前方法调用的类
  • superclass:获取当前调用的父类
  • super:是一个编译指示器,就是给编译器看的,不是一个指针
    • 本质:只要编译器看到super这个标志,就会让当前对象去调用父类的方法,本质还是当前对象在调用

例子

一个person类,有一个test方法

 #import 

@interface Person : NSObject

- (void)test;

 @end

persond的子类SubPerson 实现test方法

@implementation SubPerson

- (void)test {

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

// 打印结果:SubPerson  Person  SubPerson  Person
// [super class]:解释 super是指的当前对象调用这个方法   
 //当前对象就是SubPerson -> self
}
@end

你可能感兴趣的:(关于class,superClass,super的解释)