ios开发之-继承的实现运用
Posted brucemengbm
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios开发之-继承的实现运用相关的知识,希望对你有一定的参考价值。
// // main.m // 继承 // // #import <Foundation/Foundation.h> #import "Animal.h" #import "Cat.h" #import "Dog.h" #import "FeedMan.h" int main(int argc, const char * argv[]) { // Animal * animal = [Animal new]; // // [animal eat]; // // [animal sleep]; // //忘记引入头文件 // Animal * cat =[[Cat alloc]init]; // // [cat eat]; // Cat * cat = [[Cat alloc]init]; // // [cat catchMouse]; // // Dog * dog = [[Dog alloc]init]; // // [dog bark]; // //父类指针保存子类对象。如何调用子类对象的方法? // Animal * animal_cat = [[Cat alloc]init]; // // FeedMan * man = [[FeedMan alloc]init]; // // [man showName:animal_cat]; //[animal_cat eat]; // [animal_cat setName:@"Hello Cat"]; Animal * animal_dog = [[Dog alloc]init]; FeedMan * man = [[FeedMan alloc]init]; [man showName:animal_dog]; [man FeedAnimal:animal_dog]; //子类调用父类的方法,如何实现方法的不同性? return 0; }
// // FeedMan.h // 继承 // #import "Animal.h" @interface FeedMan : NSObject -(void)showName:(Animal *)animal; -(void)FeedAnimal:(Animal *)animal; @end
// // FeedMan.m // 继承 #import "FeedMan.h" #import "Dog.h" #import "Cat.h" @implementation FeedMan -(void)FeedAnimal:(Animal *)animal { if ([animal isKindOfClass:[Dog class]] ) { Dog * dog = (Dog *)animal; [dog eat]; } } -(void)showName:(Animal *)animal { //能够动态的检測动物的类型用到的一个类? if([animal isKindOfClass:[Dog class]]) { //须要强制类型转换 Dog * dog = (Dog *)animal; [dog bark]; } else if ([animal isKindOfClass:[Cat class]]) { Cat * cat = (Cat *)animal; [cat catchMouse]; } } @end
// // Animal.h // 继承 #import <Foundation/Foundation.h> @interface Animal : NSObject { NSString * _name; int _age; } @property NSString * name; @property int age; -(void)eat; -(void)sleep; -(void)showAge; @end
// // Animal.m // 继承 // #import "Animal.h" @implementation Animal -(void)eat { NSLog(@"动物吃东西"); } -(void)sleep { NSLog(@"动物睡觉了"); } -(void)showAge { NSLog(@"小动物的年龄"); } @end
// // Dog.h // 继承 // #import "Animal.h" @interface Dog : Animal { } -(void)bark; -(void)eat; @end
// // Dog.m // 继承 // #import "Dog.h" @implementation Dog -(void)bark { NSLog(@"小狗汪汪叫"); } -(void)eat { NSLog(@"小狗吃东西"); } @end
// // Cat.h // 继承 #import "Animal.h" @interface Cat : Animal { } -(void)catchMouse; -(void)eat; @end
// // Cat.m // 继承 // #import "Cat.h" @implementation Cat { } -(void)catchMouse { NSLog(@"猫咪会捉老鼠!"); } -(void)eat { NSLog(@"小猫吃小鱼"); } @end
以上是关于ios开发之-继承的实现运用的主要内容,如果未能解决你的问题,请参考以下文章
iOS Target-Action设计模式的运用之限制按钮的点击频率
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情
自定义控件之AndroidSegmentControlView,仿IOS平台UISegmentControlView,继承自View