简单的封装继承多态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的封装继承多态相关的知识,希望对你有一定的参考价值。
首先创建一个工程, 然后创建一个动物类(Animal),然后再创建一个猫类和一个狗类,最后创建一个人类来给动物喂食。
动物类继承NSObject
而猫类和狗类继承动物类
人类喂食也继承NSObject
动物类
//类的声明 #import <Cocoa/Cocoa.h> @interface Animal : NSObject -(void)jiao; -(void)eat; @end //类的实现 #import "Animal.h" @implementation Animal -(void)jiao { NSLog(@"叫"); } -(void)eat { NSLog(@"吃"); } @end
猫类
#import "Animal.h" @interface Cat : Animal -(void)jiao; @end #import "Cat.h" @implementation Cat -(void)jiao { NSLog(@"喵喵叫"); } -(void)eat { NSLog(@"猫吃鱼"); } @end
人类喂食
#import <Foundation/Foundation.h> #import "Animal.h" @interface Weishi : NSObject -(void)feed:(Animal *) animal; @end #import "Weishi.h" @implementation Weishi -(void)feed:(Animal *)animal { [animal eat]; } @end
最后在主函数里面实例化对象
#import <Foundation/Foundation.h> #import "Animal.h" #import "Cat.h" #import "Dog.h" #import "Weishi.h" int main(int argc, const char * argv[]) { @autoreleasepool { id test=[[Animal alloc]init]; [test jiao]; Animal *test1=[[Cat alloc]init]; [test1 jiao]; id test2=[[Dog alloc]init]; [test2 eat]; id test3=[[Weishi alloc]init]; [test3 feed:test2]; } return 0; }
最后得到下面的。
当然这基本是最简单了。
以上是关于简单的封装继承多态的主要内容,如果未能解决你的问题,请参考以下文章