super 、superClass和class
2017-09-11 本文已影响21人
快乐的tomato
- class:获取方法调用类名
- superclass:获取方法调用者的父类类名
- super:编译修饰符,不是指针,指向父类标志,
本质还是拿到当前对象去调用父类的方法
注意:super并不是拿到父类对象去调用父类方法
person.h
- (void)classtest;
person.m
- (void)classtest
{
NSLog(@"person中的输出: %@ %@ %@",[self class],[self superclass],[super class]);
}
SonPerson继承自Person
SonPerson.h
- (void)test;
Sonperson.m
NSLog(@"SonPerson中的输出 :%@ %@ %@",[self class],[self superclass],[super class]);
[super classtest];
ViewController.m
SonPerson *son = [[SonPerson alloc] init];
[son test];
Person *person = [[Person alloc] init];
[person classtest];
打印输出的结果:
2017-09-11 11:34:03.195 01-super,superClass,class[13583:98927] SonPerson中的输出 :SonPerson Person SonPerson
2017-09-11 11:34:03.195 01-super,superClass,class[13583:98927] person中的输出: SonPerson Person SonPerson
2017-09-11 11:34:03.195 01-super,superClass,class[13583:98927] person中的输出: Person NSObject Person