<span style="font-family: Menlo;">/</span>
// main.m
// 簡單的繼承
//
// Created by smartlei on 15/5/20.
// Copyright (c) 2015年 smartlei. All rights reserved.
//
#import <Foundation/Foundation.h>
/*************ClassA*****************/
@interface ClassA :NSObject
{
int x;
}
-(void) initVar;
@end
@implementation ClassA
-(void) initVar
{
x=100;
}
@end
/****************ClassB*******************/
@interface ClassB :ClassA//繼承類A
{
int y;
}
-(void) printfVar;
@end
@implementation ClassB
-(void) printfVar
{
NSLog(@"x=%i",x);
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
ClassB *b=[[ClassB alloc] init];//申請空間
[b initVar];//對b初始化,但是b沒有定義初始化函數,所以向下調用類A的初始化函數
[b printfVar];//調用b的打印函數
// insert code here...
// NSLog(@"Hello, World!");
}
return 0;
}
注意點一:如何找到正確的方法?
首先調用方法是首先會查看自己是否定義了該方法,如果定義了則調用該方法,如果沒有定義則查找父類是否定義,如果定義了則調用父類該方法,一直重複循環直至查找到根類也沒有則停止。