OC-多态

1.多态:多种形态

1> 没有继承就没有多态

2> 代码体现:父类类型指针指向子类对象

eg:

#import <Foundation.Foundation.h>

@interface Animal : NSObject
- (void)eat;
@end

@implementation Animal
- (void)eat
{
    NSlog(@"动物吃东西");
}
@end

@interface Dog : Animal
- (void)eat;
@end

@implementation Dog
- (void)eat
{
    NSlog(@"Dog吃东西");
}
@end

int main()
{
    //多种形态
    Dog *d = [Dog new];// Dog类型
    
    //多态;父类指针指向子类对象
    Animal *a = [Dog new];
    
    [a eat];//调用方法时,检测对象的真实类型

    rerurn 0;
}

2.优缺点
1> 好处:如果函数\方法的参数类型使用的父类类型,可以传入子类和父类对象

2> 局限性:父类类型变量不能够直接调用子类特有的方法(编译过程会有警告)。必须强转为子类类型便后后,才能够直接调用子类特有的方法。

posted @ 2015-07-09 07:20  wlv587  阅读(131)  评论(0编辑  收藏  举报