OC3 - 부모 포인터 가 하위 클래스 대상 을 가리 키 고 있 습 니 다.

12310 단어 대상
//

//  Cat.h

//  OC3-          

//

//  Created by qianfeng on 15/6/17.

//  Copyright (c) 2015  qianfeng. All rights reserved.

//



#import "Animal.h"



@interface Cat : Animal

{

    float _height;

}

@property (assign,nonatomic)float height;

@end





//

//  Cat.m

//  OC3-          

//

//  Created by qianfeng on 15/6/17.

//  Copyright (c) 2015  qianfeng. All rights reserved.

//



#import "Cat.h"



@implementation Cat

-(void)printAnimalFood

{

    NSLog(@"cat like to eat fish");

}

-(NSString *)description

{

    return [NSString  stringWithFormat:@"name=%@,age=%li,height=%.2f",_name,_age,_height];

}

@end
//

//  Dog.h

//  OC3-          

//

//  Created by qianfeng on 15/6/17.

//  Copyright (c) 2015  qianfeng. All rights reserved.

//



#import "Animal.h"



@interface Dog : Animal

{

    float _weight;

}

-(void)printAnimalHaHa;

@property (assign,nonatomic) float weight;

@end





//

//  Dog.m

//  OC3-          

//

//  Created by qianfeng on 15/6/17.

//  Copyright (c) 2015  qianfeng. All rights reserved.

//



#import "Dog.h"



@implementation Dog

-(void)printAnimalFood

{

    NSLog(@"dog like to eat bone");

}

//-(NSString *)description

//{

//    return [NSString stringWithFormat:@"name=%@,age=%li,weight=%.2f",_name,_age,_weight];

//}



-(void)printAnimalHaHa

{

    NSLog(@"HaHa");

}

@end
//

//  Animal.h

//  OC3-          

//

//  Created by qianfeng on 15/6/17.

//  Copyright (c) 2015  qianfeng. All rights reserved.

//



#import <Foundation/Foundation.h>



@interface Animal : NSObject



{

    NSString *_name;

    NSInteger _age;

}

@property (copy,nonatomic)NSString *name;

@property(assign,nonatomic)NSInteger age;

-(void)printAnimalFood;

@end





//

//  Animal.m

//  OC3-          

//

//  Created by qianfeng on 15/6/17.

//  Copyright (c) 2015  qianfeng. All rights reserved.

//



#import "Animal.h"



@implementation Animal

-(void)printAnimalFood

{

    NSLog(@"-----Animal");

}

-(NSString *)description

{

    return [NSString stringWithFormat:@"name111=%@,age=%li",[self name],self.age];

}

@end
//

//  main.m

//  OC3-          

//

//  Created by qianfeng on 15/6/17.

//  Copyright (c) 2015  qianfeng. All rights reserved.

//



#import <Foundation/Foundation.h>

#import "Dog.h"

#import "Cat.h"

#import "Animal.h"



void showAnimalFood(Animal *ani)

{

    [ani printAnimalFood];

}

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

    @autoreleasepool {

       

        Dog    *xiaohei =[[Dog alloc] init];

        xiaohei.name=@"xiaogei";

        xiaohei.age=12;

        xiaohei.weight=12.6;

        

        //[xiaohei description];

        NSLog(@"%@",xiaohei);

        

        Cat *xiaomao =[[Cat alloc] init];

        xiaomao.name=@"xiaomao";

        xiaomao.age=12;

        xiaomao.height=12.6;

        //[xiaohei description];

        NSLog(@"%@",xiaomao);

        //                

        //             ,             ,             ,             ,             ,                 .

        Animal *ani =xiaohei;

        [ani printAnimalFood];

        

        ani=xiaomao;

        [ani printAnimalFood];

        

        

        showAnimalFood(xiaomao);

        showAnimalFood(xiaohei);

        //          ,       .  

        

    }

    return 0;

}

좋은 웹페이지 즐겨찾기