- 도형에 관한 상속 예제이다.
- 소스코드
#import <Foundation/Foundation.h> @interface Rectangle : NSObject{ int width; int height; } @property int width, height; -(int)area; -(int)perimeter; -(void)setWidth:(int) w andHeight: (int) h; |
#import "Rectangle.h" @implementation Rectangle @synthesize width, height; -(int)area{ return width*height; } -(int)perimeter{ return (width+height)*2; } -(void)setWidth:(int) w andHeight: (int) h{ width = w; height = h; } @end |
이제 정사각형을 다뤄 보자. Square라는 클래스를 새로 정의하고 Rectangle 클래스에서 했던 것처럼 유 사한 메서드를 정의하는 방식도 있다. 혹은, 정사각형이 직사각형에서 너비와 높이가 똑같은 특별한 도형 임을 인식해서 해결해도 된다.
#import <Foundation/Foundation.h> #import "Rectangle.h" @interface Square : Rectangle -(void) setSide: (int)s; -(int) side; |
#import "Square.h" @implementation Square -(void) setSide: (int)s{ [self setWidth:s andHeight:s]; } -(int) side{ return width; } @end |
#import <Foundation/Foundation.h> #import "Rectangle.h" #import "Square.h" int main(int argc, const char * argv[]) { Rectangle *myRect = [[Rectangle alloc]init]; [myRect setWidth:5 andHeight:8]; NSLog(@"Rectangle : w = %i, h = %i", myRect.width, myRect.height); NSLog(@"Area = %i, Perimeter = %i",[myRect area], [myRect perimeter]); return 0;
Square *mySquare = [[Square alloc]init]; [mySquare setSide:5]; NSLog(@"Square : s = %i", [mySquare side]); NSLog(@"Area = %i, Perimeter = %i",[mySquare area], [mySquare perimeter]); return 0; } |
- 실행화면
'C/Objective C > Objective C' 카테고리의 다른 글
Objective C Class 초기화 예제 따라하기 (0) | 2012.07.23 |
---|---|
Objective C Polymorphism(다형성) 예제 따라하기 (0) | 2012.07.18 |
Objective C @Class 지시어 예제 따라하기 (0) | 2012.07.17 |
Objective C method overriding(메소드 재정의) 예제 따라하기 (0) | 2012.07.17 |
Objective C 상속 예제 따라하기 (0) | 2012.07.17 |