您的位置:首页 > 其它

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

2013-12-18 23:44 246 查看
一、多态:

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

例:

定义两个类:Fraction和Complex:

@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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: