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