ios开发之-继承的实现运用
来源:互联网 发布:指定变号发短信软件 编辑:程序博客网 时间:2024/06/05 05:40
//// 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
0 0
- ios开发之-继承的实现运用
- iOS开发之SMSSDK的简单运用
- iOS开发之SMSSDK的简单运用
- IOS开发之UIScrollVIew运用
- IOS开发之UIScrollVIew运用
- iOS开发之runtime的运用-获取当前网络状态
- iOS开发之runtime的运用-获取当前网络状态
- iOS开发之runtime的运用-获取当前网络状态
- iOS开发之runtime的运用-获取当前网络状态
- iOS-开发之runtime的运用-获取当前网络状态
- iOS开发之runtime的运用-获取当前网络状态
- iOS开发之runtime的运用-获取当前网络状态
- iOS开发之runtime的运用-获取当前网络状态
- IOS开发之电子菜单的设计与实现(继承、封装、多态)
- ios之Autolayout的运用
- ios开发动物园管理 继承多态的实现
- 继承类的运用
- 继承的运用
- 程序员保值的4个秘密
- 长微博生成(将html转化为图片)原理浅析
- 【Maven】Project configuration is not up-to-date with pom.xml错误解决方法
- 【从零单排之微软面试100题系列】18之约瑟夫环问题
- 2015暑假复习——算法
- ios开发之-继承的实现运用
- 25人赛跑问题-得出前三名
- 黑马66期android学习笔记02-Android简单历史
- Python入门常见错误
- URL validation failed. The error could have been caused through the use of the browser's navigation
- hdu5289(2015多校1)--Assignment(单调队列)
- python 从两个配置文件读取数据,形成一个url思路代码
- 【转载】【MVC】对mvc的认识(载至网上的讨论片段)
- 黑马66期android学习笔记03-Android体系结构