单选题 有如下程序:
public class MethLoad
{
public static void main(String args[])
{
MethLoad classObj = new MethLoad();
classObj.methtest(4);
classObj.methtest(4.0);
}
void methtest(double D)
{
double sum = 2*d;
System.out.println("The result is:"+sum);
}
void methtest(int n)
{
int sum = 4*n;
System.out.println("The result is:"+sum);
}
}
程序的运行结果为{{U}} {{/U}}。
  • A. The result is:16 The result is:8.0
  • B. The result is:8.0 The resuR is:16
  • C. The result is:8 The result is:16.0
  • D. The resuR is:16.0 The result is:8
【正确答案】 A
【答案解析】[解析] 本题考查对方法重载的掌握程度。在上面的程序中,类MethLoad中定义了两个具有相同名称methtest的方法,但这两个方法的参数不相同,编译器会根据参数的个数和参数类型宋决定应该调用哪个方法。在类MethLoad中先声明了一个classObj对象,接着调用classObj的methest方法,只不过是两次调用中参数的类型不同,第1次调用的参数是血类型的4,第2次调用的参数是 double类型的4.0,因此要调用相对应的方法。int类型的方法返回参数值的4倍,而 double类型的方法返回参数值的2倍。