
2008-7-17 10:24
asangel
有两个问题
多个方法具有同样的名称和相同数目的参数时,JAVA编译器确定如何匹配的算法。
说明当涉及隐式转换、显式转换、面向对象的数值替换时解决重载方法名的算法步骤
2008-7-17 11:14
antonyx
这种基础的面试题请参考你自己的书籍或者Google。
2008-7-17 17:04
easier_wjh
多个方法具有同样的名称和相同数目的参数时
参数类型不一样?
2008-7-17 17:09
asangel
参数类型不一样,如果一样的话程序编译不通过。
[quote]原帖由 [i]easier_wjh[/i] 于 2008-7-17 17:04 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10980843&ptid=1022965][img]http://www.itpub.net/images/common/back.gif[/img][/url]
多个方法具有同样的名称和相同数目的参数时
参数类型不一样? [/quote]
2008-7-18 10:00
asangel
关于重载中选择调用哪一个方法。
首先要精确匹配,
java编译器首先判断方法名称是否相同。然后判断参数个数是否相同。再次判断相应位置的参数类型是否相同。
如果以上完全一致,就调用相应的方法。
如果存在隐式转换。
数值类型的话,按照如下的顺序
(byte,char,short)->int->long->float->double
从左到右进行匹配。
引用类型的话,先确认参数的类,然后确认是不是该参数类的子类。
面向对象的数值替换时。在J2SE 5.0,会自动box相应的数值为对象类型。然后进行参数匹配。
页:
[1]

Powered by ITPUB论坛