Object-c中的class

  • class:获取当前方法调用者的类
  • superClass 获取当前方法调用者的父类
  • super:仅仅是一个编译指示器,就是给编译器看的,不是一个指针
  • super本质:只要编译器看到super这个标志,就会让当前对象去调用父类方法,本质还是当前对象在调用
@interface Person : NSObject
-(void)logClass;
@end

@implementation Person
-(void)logClass{
    /*
     class:获取当前方法调用者的类
     superClass 获取当前方法调用者的父类
     super:仅仅是一个编译指示器,就是给编译器看的,不是一个指针
     super本质:只要编译器看到super这个标志,就会让当前对象去调用父类方法,本质还是当前对象在调用
     */
    NSLog(@"%@ --> %@ --> %@ --> %@" , [self class] , [self superclass] , [super class] , [super superclass]);
}
@end


@interface SubPerson : Person
@end

@implementation SubPerson
@end

- (void)viewDidLoad {
    [super viewDidLoad];
    Person *p = [Person new];
    [p logClass];//结果:Person --> NSObject --> Person --> NSObject
    
    SubPerson *sp = [SubPerson new];
    [sp logClass];//结果:SubPerson --> Person --> SubPerson --> Person
}

你可能感兴趣的:(Object-c中的class)