类的多态,动态类型,动态绑定

一、多态:

不同类中定义的同名方法。根据调用方法的实例所属的类,以及方法的返回值类型确定调用的是哪个类里面的方法。

例:

定义两个类:FractionComplex

@interface Fraction

{

       int numeric;

       int denometer;

}

-(void) setNumeric : (int) n andDenometor : (int) d;

-(void) print;

@end

 

@interface Complex

{

       double real;

       double img;

}

-(void) setReal : (double) r andImg : (double) i;

-(void) print;

@end

在主函数中,

 

Fraction *fraction = [[Fraction alloc] init];

Complex *complex = [[Complex alloc] init];

[fraction setNumeric : 2 andDenometor : 1];

[complex setReal : 3 andImg 4];

[fraction print];

[complex print];

则分别调用各自类的输出函数进行输出。

二、id类型和动态绑定

id数据类型是一种通用的数据类型,可以用于存储任何类的对象。

例如在主函数中调用如下代码,可以得到和上面相同的效果。(注意:id定义时没有*

Fraction *fraction = [[Fraction alloc] init];

Complex *complex = [[Complex alloc] init];

id dataVal = fraction;

[dataVal setNumeric : 2 andDenometor : 1];

[dataVal print];

dataVal = complex;

[dataVal setReal : 3 andImg 4];

[dataVar print];

另外,id数据类型包含的变量的类型在编译时不检查,在运行时检查。也就是说如果id类型的变量调用的方法不属于该对象的类,则在运行时才会报错。

三、有关类的函数

四、使用@try进行异常处理

C语言中,异常处理基本相同

@try

{

\\代码块

}

@catch( NSException e)

{

}

另外还有@throw@final

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值