多态

/*
  多态:多种形态(建立在继承的基础之上)
  多态的体现:父类指针指向子类,每个OC对象都有多态性
  多态的局限性:父类指针不能直接调用子类特有的方法,如果要正常调用子类特有的方法
              需要将父类指针强制转换为子类指针
 */
#import<Foundation/Foundation.h>
@interface Zoombie:NSObject
-(void)walk;
@end
@implementation Zoombie
-(void)walk
{
    NSLog(@"僵尸走几步,,,,");
}
@end
@interface JumpZoombie:Zoombie
-(void)walk;
@end
@implementation JumpZoombie
-(void)walk
{
    NSLog(@"僵尸跳几步,,,");
}
@end
int  main()
{
    //第一种状态
    JumpZoombie *jump = [JumpZoombie new];
    [jump walk];
    //第二种状态:父类指针指向子类对象
    //Zoombie 类型的指针指向了新建的对象
    Zoombie *j = [JumpZoombie new];
    /*
     这个方法在执行的过程中,执行一个“动态绑定”;
     动态绑定就是检测指针所指对象的对象是什么类型,该对象实质是JumpZoombie创建的对象,所以指针指向JumpZoombie对象,所以 调用该对象中的方法;
     */
    [j walk];
    return 0;
}

运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值