수색…


통사론

  1. @interface derived-class-Name : 기본 클래스 이름

자동차는 차량으로부터 물려 받았습니다.

기본 클래스 Vehicle 과 그 파생 클래스 Car 를 다음과 같이 생각하십시오.

#import <Foundation/Foundation.h>
 
@interface Vehicle : NSObject

{
    NSString *vehicleName;
    NSInteger vehicleModelNo;
}

- (id)initWithName:(NSString *)name andModel:(NSInteger)modelno;
- (void)print;
@end

@implementation Vehicle

- (id)initWithName:(NSString *)name andModel:(NSInteger)modelno{
    vehicleName = name;
    vehicleModelNo = modelno;
    return self;
}

- (void)print{
    NSLog(@"Name: %@", vehicleName);
    NSLog(@"Model: %ld", vehicleModelNo);
}

@end

@interface Car : Vehicle

{
    NSString *carCompanyName;
}

- (id)initWithName:(NSString *)name andModel:(NSInteger)modelno 
  andCompanyName:(NSString *)companyname;
- (void)print;

@end


@implementation Car

- (id)initWithName:(NSString *)name andModel:(NSInteger) modelno 
  andCompanyName: (NSString *) companyname
  {
    vehicleName = name;
    vehicleModelNo = modelno;
    carCompanyName = companyname;
    return self;
}
- (void)print
{
    NSLog(@"Name: %@", vehicleName);
    NSLog(@"Model: %ld", vehicleModelNo);
    NSLog(@"Company: %@", carCompanyName);
}

@end

int main(int argc, const char * argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];        
    NSLog(@"Base class Vehicle Object");
    Vehicle *vehicle = [[Vehicle alloc]initWithName:@"4Wheeler" andModel:1234];
    [vehicle print];
    NSLog(@"Inherited Class Car Object");
    Car *car = [[Car alloc]initWithName:@"S-Class" 
    andModel:7777 andCompanyName:@"Benz"];
    [car print];        
    [pool drain];
    return 0;
}

위의 코드를 컴파일하고 실행하면 다음과 같은 결과가 생성됩니다.

2016-09-29 18 : 21 : 03.561 상속 [349 : 303] 기본 클래스 차량 객체

2016-09-29 18 : 21 : 03.563 상속 [349 : 303] 이름 : 4 휠러

2016-09-29 18 : 21 : 03.563 상속 [349 : 303] 모델 : 1234

2016-09-29 18 : 21 : 03.564 상속 [349 : 303] 상속 된 클래스 자동차 객체

2016-09-29 18 : 21 : 03.564 상속 [349 : 303] 이름 : S-Class

2016-09-29 18 : 21 : 03.565 상속 [349 : 303] 모델 : 7777

2016-09-29 18 : 21 : 03.565 상속 [349 : 303] 회사 : Benz



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow