标签:style blog io color 使用 sp on div log
一.基本概念
多态是基于继承的基础之上的,多态可以使得父类的指针指向子类的对象。
如果函数或参数中使用的是父类类型,可以传入父类、子类对象,但是父类类型的变量不能直接调用子类特有的方法。
Animal类的声明和实现
// 动物 @interface Animal : NSObject - (void)eat; @end @implementation Animal - (void)eat { NSLog(@"Animal-吃东西----"); } @end
Dog类继承自Animal类
// 狗 @interface Dog : Animal - (void)run; @end @implementation Dog - (void)run { NSLog(@"Dog---跑起来"); } //重写Animal的eat方法 - (void)eat { NSLog(@"Dog-吃东西----"); } @end
#import <Foundation/Foundation.h> // 动物 @interface Animal : NSObject - (void)eat; @end @implementation Animal - (void)eat { NSLog(@"Animal-吃东西----"); } @end // 狗 @interface Dog : Animal - (void)run; @end @implementation Dog - (void)run { NSLog(@"Dog---跑起来"); } - (void)eat { NSLog(@"Dog-吃东西----"); } @end // 如果参数中使用的是父类类型,可以传入父类、子类对象 void feed(Animal *a) { [a eat]; } int main() { // 多态:父类指针指向子类对象 Animal *a = [Dog new]; //调用方法时会检测对象的真实形象 [a eat]; return 0; }
结果:Dog-吃东西----
二.多态总结
标签:style blog io color 使用 sp on div log
原文地址:http://www.cnblogs.com/cwhking/p/4159543.html