不过如果我要通过函数来改变reference的类型,该怎么做?

解决方案 »

  1.   

    在Core Java一书中,作者把java的参数传递认为是by value的。
    你可以这么认为,在你调用changeSex()函数时,java创建了一个临时的参数a,它引用对象Male(),也就是和i引用同一个对象,然后你在函数中使它引用一个新的对象(new Female),然后,推出函数,i仍然引用Male对象,因此输出你的结果。这样解释不知道楼主是否满意呢:)
      

  2.   

    very sound :)
    现在我有另外一个问题,如果我需要改变某个referece的类型的函数,并且该reference作为函数的参数。
    请教如何实现?
      

  3.   

    这个好像不行,书中提到过关于swap()函数的问题,好像是用C/C++的方法无法实现。估计你的这个问题也不行吧。