Java高手请进!!!迷惑Ing...

来源:百度知道 编辑:UC知道 时间:2024/05/04 15:48:36
public class Test
{
public static void print(int a,long b,long c)
{
System.out.println("First");
}
public static void print (long a,int b,long c)
{
System.out.println("Second");
}
public static void main(String []args)
{
new Test().print(1,12,123);
}
}

为什么是
Test.java:13: 对 print 的引用不明确,Test 中的 方法 print(int,long,long) 和 Test
中的 方法 print(long,int,long) 都匹配
new Test().print(1,12,123);
^
1 错误

有请高人....
我知道是不明确,但是为什么不明确呢`,能不能来讨论这个``不是要解决`是要解释下为什么会出现这个`!!
把第一个 改成(int a,long b,long c)
第二个改成(long a,long b,long c)为什么又不会报错呢?

同意fly1843的~
方法重载的参数必须符合原方法的参数类型!

静态方法直接用类名调用

你的print函数的重载不够smart.
main里面的print(1,12,123)两个print函数都能够匹配,
当然会出现”对 print 的引用不明确”的错误

new Test().print(1,12.0,123.0);
试试看

public static void print(int a,long b,long c)
这个是静态方法,,不能用对象来调用它的...直接用类名就可以了

你用的是java方法的重载 只是参数的类型不同,
下面是5这个数分别作为int long double的写法:
int long double
5 5l 5.0

另外因为print你定义的是静态的方法,直接用类名调用就可以了