1:為什么要有繼承關系?
定義一個通用的類,它又基本的實例變量。子類可以繼承了該類,就可以擁有這些實例變量。子類也可以定義自己的實例變量。
被繼承的類叫超類或者父類(superclass),繼承超類的類叫做子類(subclass)。
OC中繼承的語法規則為:
@interface 子類:父類
2:接下來看實例代碼
首先是ClassA.h
// // ClassA.h // ClassAB // // Created by hmjiangqq on 14-1-22. // Copyright (c) 2014年 hmjiangqq. All rights reserved. // #import <Foundation/Foundation.h> @interface ClassA : NSObject { int x; } -(void)initVar; @end
ClassA.m
// // ClassA.m // ClassAB // // Created by hmjiangqq on 14-1-22. // Copyright (c) 2014年 hmjiangqq. All rights reserved. // #import "ClassA.h" @implementation ClassA -(void)initVar{ x=100; } @endClassB.h
// // ClassB.h // ClassAB // // Created by hmjiangqq on 14-1-22. // Copyright (c) 2014年 hmjiangqq. All rights reserved. // #import "ClassA.h" @interface ClassB : ClassA -(void)printVar; @endClassB.m
// // ClassB.m // ClassAB // // Created by hmjiangqq on 14-1-22. // Copyright (c) 2014年 hmjiangqq. All rights reserved. // #import "ClassB.h" @implementation ClassB -(void)printVar{ NSLog(@"x= %d\n",x); } @endMain.m
// // main.m // ClassAB // // Created by hmjiangqq on 14-1-22. // Copyright (c) 2014年 hmjiangqq. All rights reserved. // #import <Foundation/Foundation.h> #import "ClassB.h" int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); ClassB *b=[[ClassB alloc]init]; [b initVar]; //父類中的方法 [b printVar]; } return 0; }