复习:super、superClass

前言:

  • 有两个类,父类 Person ,子类 Son
  • 父类有一个test方法,在子类 Son.m 中实现,并写上输出语句
@interface Person : NSObject
- (void)test;
@end

@implementation Son
- (void)test {
    NSLog(@"%@, %@, %@, %@",[self class], [self superclass], [super class], [super superclass]);
}
@end
  • [self class] : 中的 self 代表 -> Son 类

  • [self superclass] : 中的 self 代表 -> Person 类

  • [super class] : 中的 super 代表 -> Son 类

  • [super superclass] : 中的 super 代表 -> Person 类

  • super 的含义:只是一个去父类查找的标志,但本质还是当前对象。让当前对象去调用父类的方法.


换一种写法:在 Son 类 test 方法中调用 [super test] 会是什么结果

@implementation Son
- (void)test {
    [super test];
}
@end

@implementation Person
- (void)test {
    NSLog(@" Person === %@, %@, %@, %@",[self class], [self superclass], [super class], [super superclass]);
}
@end

结果:Person === Son, Person, Son, Person
因为是在 Son 类调用的,super 代表的是 Son 类

你可能感兴趣的:(复习:super、superClass)