示例一
main.m
#import <Foundation/Foundation.h>
// ClassA 的声明和定义
@interface ClassA : NSObject
{
int x; // 将由子类继承
}
-(void) initVar;
@end
////////////////////////////
@implementation ClassA
-(void) initVar
{
x = 100;
}
@end
// ClassB 的声明和定义
@interface ClassB : ClassA
-(void) initVar;
-(void) printVar;
@end
////////////////////////////
@implementation ClassB
// 覆盖父类的initVar方法
-(void) initVar
{
x = 200;
}
-(void) printVar
{
NSLog(@"x = %i", x);
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
ClassB *b = [[ClassB alloc] init];
[b initVar]; //调用B中覆盖的方法
[b printVar];
}
return 0;
}