面向对象语言Objective-C三大特性之三--多态

    多态就是一个父类在声明的时候不确定自己指向哪个子类对象,只有在程序运行时才能确定自己指向哪个子类对象,从而使用一个父类有可以展现出多种子类的形态。

比如:

#import <Foundation/Foundation.h>

/**********父类************/

@interface Animal : NSObject
{
    
    int _age;
    double _weight;
}

- (void)setAge:(int)age;
- (int)age;

- (void)setWeight:(double)weight;
- (double)weight;

@end

@implementation Animal
- (void)setAge:(int)age
{
    
    _age = age;
}

- (int)age
{
    
    return _age;
}

- (void)setWeight:(double)weight
{
    
    _weight = weight;
}

-(double)weight
{
    return _weight;
}

@end

/**********子类1************/

@interface Dog: Animal

- (void)eat();

@end


@implementation Dog

- (void)eat()
{
    NSLog("Dog eat");
}

@end

/**********子类2************/
@interface Cat: Animal

- (void)eat();

@end

@implementation Cat

- (void)eat()
{
    NSLog("Cat eat");
}

@end

int main()
{
    //调用子类Dog的eat方法
    Animal *a = [[Dog alloc] init];
    [a eat];
    
    //调用子类Cat的eat方法
    Animal *a = [[Cat alloc] init];
    [a eat];

    return 0;
}


使用注意:

    1. 如果一个函数的参数是父类类型,则可以传入父类、子类对象。

    2. 不得使用子类类型创建父类对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值