黑马程序员技术交流社区

标题: 多态小结 [打印本页]

作者: zhuozhuo    时间: 2015-9-17 23:04
标题: 多态小结
#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;
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2