OC学习笔记 面向对象 多态
2015-04-21 09:30
302 查看
#import <Foundation/Foundation.h> @interface Animal : NSObject - (void) eat; @end @implementation Animal - (void) eat { NSLog(@"用嘴巴吃啊"); } //如果参数中是父类类型可以传入父类和子类对象。 void feed (Animal *animal) { [animal eat]; } @end @interface Dog : Animal - (void) eat; @end @implementation Dog - (void) eat { NSLog(@"狗仔用嘴巴吃啊"); [super eat]; } @end @interface Cat : Animal @end @implementation Cat @end int main() { //代码体现多态就是父类类型指针指向子类对象 没有继承就没有多态 //多态 局限性 父类类型变量不能直接调用子类对象 需要强制转换 Animal *animal = [Dog new]; feed(animal); Cat *c = [Cat new]; feed(c); Dog *d = (Dog *)animal;//强制转换类型 [d eat]; return 0; }
多态总结
多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态。
在使用多态是,会进行动态检测,以调用真实的对象方法。
多态在代码中的体现即父类指针指向子类对象。
//多态 父类指针指向子类对象 字符串继承NSObject
NSObject *obj1 = [[NSObject alloc]init];
obj1 = @"hello";//字符串赋值给父类对象
相关文章推荐
- OC学习笔记02-OC中的面向对象语法表现 - 封装 继承与多态
- OC 面向对象—多态(文顶顶博客学习笔记及自我认识)
- 黑马程序员-OC学习笔记-----封装、继承、多态
- OC学习笔记之面向过程与面向对象
- java学习笔记5.23对象和面向对象的思考,继承和多态
- Objective-C基础学习笔记(五)-面向对象的三大特性之多态
- 嵌入式开发之C++基础学习笔记4--面向对象封装继承多态
- 黑马程序员学习笔记_OC之多态
- 黑马程序员————IOS学习笔记 第3篇 OC面向对象三大特性(1)
- Objective-C基础学习笔记(五)-面向对象的三大特性之多态
- 【Objective-C学习笔记】OC三大特性:封装、继承、多态
- (13)Java学习笔记——面向对象07——多态
- OC学习笔记之多态
- 黑马程序员java学习笔记——面向对象的特征封装、继承和多态
- OC 多态的运行 学习笔记
- 【JavaSE学习笔记】面向对象_多态、抽象
- 【学习笔记】【OC语言】多态
- oc学习笔记-set和get函数 基础(Foundation)面向对象之封装方法
- 黑马视频学习笔记-OC-多态
- 黑马程序员————IOS学习笔记 第2篇 OC面向对象(二)