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支持类方法覆盖
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fjh658/article/details/23198459
猜你喜欢
转载自blog.csdn.net/fjh658/article/details/23198459
今日推荐
周排行