【发布时间】:2017-08-17 18:50:02
【问题描述】:
使用 Wrapper 类重载方法
void Test1(Object o)
{
System.out.println("object");
}
void Test1(Integer o)
{
System.out.println("Integer");
}
void Test1(Long o)
{
System.out.println("Long");
}
调用Test1(1)会调用Integer,但是当我们在用Integer作为文本注释方法后调用Test1(1)时,它会调用Object文本的方法,而不是Long的方法。
再次
void Test1(Object o)
{
System.out.println("object");
}
void Test1(Integer o)
{
System.out.println("Integer");
}
void Test1(Long o)
{
System.out.println("Long");
}
void Test1(int o)
{
System.out.println("int");
}
还要考虑我们调用 Test1('a') 的情况,所以它会调用 int one。现在删除 int 一,因此它应该调用 Integer 一,因为“a”将更改为 int,而 int 将更改为 Integer,但在这种情况下,它将调用 Object 一。 有什么具体原因吗?
【问题讨论】:
-
为什么它不调用 Long,如果我们评论 Integer one
标签: java overloading