java重载小疑问~~

来源:百度知道 编辑:UC知道 时间:2024/06/28 00:56:43
class B
{
public int myVoid(int x)
{
return x*5;
}
}

public class A extends B
{

public static void main(String[] args)
{
A a=new A();
long l=a.myVoid(3);
System.out.println(l);
}
public long myVoid(long x)
{
return x*6;
}
}
为什么运行得出的值是15不是18,很疑惑~~

A有两个同名方法 ,具体调用哪个,要看你传的参数的类型.
3是int,所以调用public int myVoid(int x) ;方法
如果是3L结果才是你想要的.

你的是3 不是3L
所以调用的是

B类里面的那个方法

楼上的说的对哦!
数据类型的问题

那个3是个整形数,所以会调用myVoid(int x)这个函数,如果将3设置为3L则会是18..