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;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
List 컬렉션 객체에서 서로 다른 속성 크기로 정렬된 인스턴스인스턴스는 다음과 같습니다. 테스트: 출력 결과는 다음과 같습니다. 두 번째 방법은 컬렉션에 따라.sort 재부팅 방법(예: 마스터 클래스에서 이렇게 작성하면 됩니다. 출력 결과는 다음과 같습니다. 전자의 코드 구조...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.