A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vittle 中级黑马   /  2014-12-6 14:30  /  726 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天学习的是多态,下面是多态总结的要点;
1,多态是在继承的基础之上的
2,多态在代码中的体现是:父类指针指向子类对象
3,多态的好处是:在不同的累方法中有相同的父类,可以将多个方法整合成一个父类,从而取出代码冗余
例:
@interface Animal : NSObject
- (viod)eat;
@end
@implementation Animal
- (viod)eat
{
NSLog(@"animal eating!")

@end




@interface Dog :Animal

@end
@implementation Dog
- (void)eat
{
NSLog(@"dog eating");
}
@end




@interface Cat : Animal
@end
@implementation Cat
- (viod)eat
{
NSLog(@"cat eating")
}
@end



void feed(animal *a)
{
   [a eat]
}
int main()
{
Dog *d=[Dog new];
Cat *c=[Cat new];
feed(d);         //feed dog
feed(c) ;       //feed cat
return 0;
}  


在多态中可以用父类类型定义子类对象的对象指针
例如:
Animal *dog=[Dog new];
[dog eat];       //输出是”dog eating“,对象的变量和方法会选择对象的真实类型来决定
                   不会依赖对象指针类型

1 个回复

倒序浏览
感觉没说清楚
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马