본문 바로가기

C/Objective C/Objective C

Objective C 상속 예제 따라하기

상속

모든 것은 루트에서 시작된다.

지금까지 정의한 클래스는 모두 NSObject라는 루트 클래스의 자식들이다. 이를 인터페이스 파일에서 다음 과 같이 지시해 주었다.

@interface Fraction:NSObject ...

@end
Fraction 클래스는 NSObject 클래스에서 파생되었다. 계층도를 보면 NSObject가 최상위에 있기 때문에 (즉, 그 위로 아무 클래스도 없기 때문에) ‘루트’ 클래스라고 부른다. Fraction 클래스는 ‘자식 클래스’ 혹 은 ‘서브클래스’라고 부른다.

- 소스코드

#import <Foundation/Foundation.h>


@interface ClassA : NSObject

{

int x;

}

-(void) initVar;


@end 

#import "ClassA.h"


@implementation ClassA

-(void) initVar{

x = 100;

}

@end

 

#import <Foundation/Foundation.h>

#import "ClassA.h"

@interface ClassB : ClassA

-(void) printVar;


@end 

#import "ClassB.h"


@implementation ClassB

-(void) printVar{

NSLog(@"x = %i",x);

}

@end 

#import <Foundation/Foundation.h>

#import "ClassB.h"

int main(int argc, const char * argv[])

{


ClassB *b = [[ClassB alloc]init];

[b initVar];

[b printVar];

    return 0;

} 


- 실행 화면