美文网首页
第八章 动态绑定和 id 类型

第八章 动态绑定和 id 类型

作者: 一个人的思考 | 来源:发表于2015-05-17 11:29 被阅读44次

    第八章 动态绑定和 id 类型 //*************************************************************************************//

    #import "Fraction.h"
    #import "Complex.h" //两个类中都含有 print 方法 int main(int argc, char *argv[])
    {

    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; Fraction *f = [[Fraction alloc] init];
    Complex *c = [[Complex alloc] init];
    id dataValue; //声明 dataValue为 id 类型

    //对对象的成员变量赋值
    [f setTo:2 over: 5];
    [c setReal:10.0 andImaginary: 2.5];

    dataValue=f; [dataV alueprint]; dataValue=c; [dataV alueprint];

    //将Fractionf 存储到dataValue中
    //现在 dataV alue可以调用用于 Fraction 对象的任何方法 //将Complexc 存储到dataValue中
    //调用用于 Complex 对象的任何方法

    //问题:两次遇到 [dataV alueprint]; 并且 Fraction 和 Complex 类中都定义有 print 方法,系统如何知道 调用哪个?

    //答案:在程序执行期间,当系统准备将 print 消息发送给 dataV alue时,它首先检查 dataV alue中存储 的对象所属的类。

    [f release];

    [c release];

    [pool drain];

    return 0;

    } //************************************************************************************//

    相关文章

      网友评论

          本文标题:第八章 动态绑定和 id 类型

          本文链接:https://www.haomeiwen.com/subject/qpokqttx.html