objective c支持类方法覆盖
#import <Foundation/Foundation.h>
@interface Person : NSObject
+ (void) print;
- (void) test;
@end
/
#import "Person.h"
@implementation Person
+(void)print
{
NSLog(@"person");
}
-(void)test
{
[[self class]print];//关键代码
}
@end
/
#import "Person.h"
@interface SubPerson : Person
+(void)print;
@end
/
#import "SubPerson.h"
@implementation SubPerson
+(void)print
{
NSLog(@"subperson print");
}
@end
/
调用方
Person *person = [[SubPerson alloc]init];
[person test];
如print是类方法,在其他语言中不支持类方法覆盖,oc支持。所以[person test];结果是subperson print
qq交流群 8487420
objective c支持类方法覆盖
最新推荐文章于 2018-04-03 17:06:12 发布