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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhuozhuo 中级黑马   /  2015-9-17 23:04  /  755 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#import <Foundation/Foundation.h>
/*
  多态的概念:
        不同的对象用自己的方式响应相同名称方法的能力就称之为多态。

  体现出来:
1> 父类的指针指向子类对象

  多态条件:
1>  有继承关系,
  2> 有方法重写(子类把父类的同名方法给重写了)
  */

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

@implementation Animal
-(void)run{
     NSLog(@"动物在跑");
}
@end

@interface Dog : Animal
-(void)run;  //这句话可以不写
-(void)eat;
@end

@implementation Dog
-(void)run{
     NSLog(@"狗以80码的速度冲出去,没撞树上");
}

-(void)eat{
     NSLog(@"狗在吃东西");
}
@end

@interface Cat : Animal
@end

@implementation Cat
-(void)run{


     NSLog(@"猫在爬树");

}
@end

int main(int argc, constchar * argv[]) {
     @autoreleasepool {
         //没有使用多态
         Animal *animal = [Animalnew];

         [animal run]; //打印结果:动物在跑



         //*********  使用多态 ********

         //父类指针指向  子类对象
         Animal *a2 = [Dog new];
         [a2 run];    //打印结果:狗以80码的速度冲出去,没撞树上

         Animal *a3 = [Cat new];
         [a3 run];    //打印结果:猫在爬树


     }
     return0;
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马