方法重载并选择最具体的类型
示例代码是:
public class OverloadingTest { public static void test(Object obj){ System.out.println("Object called"); } public static void test(String obj){ System.out.println("String called"); } public static void main(String[] args){ test(null); System.out.println("10%2==0 is "+(10%2==0)); test((10%2==0)?null:new Object()); test((10%2==0)?null:null); }
输出是:
名为
10%2 == 0的 字符串为true
称为
String的对象称为
第一次调用test(null)
带String
参数调用方法,这是可以理解的The Java Language Specification
。
1)任何人都可以解释我test()
在前面的电话中调用的基础吗?
2)当我们提出时,说一个if
条件:
if(10%2==0){ test(null); } else { test(new Object()); }
它总是使用String
参数调用方法。
编译(10%2)
时编译器会计算表达式吗?我想知道表达式是在编译时还是在运行时计算的。谢谢。
POPMUISE
慕莱坞森
元芳怎么了
相关分类