问题 单项选择题

有如下程序: 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);} }程序的运行结果为( )。

A.The result is:16 The result is:8.0

B.The result is:8.0 The result is:16

C.The result is:8 The result is:16.0

D.The result is:16.0 The result is:8

答案

参考答案:A

解析: 本题考查对方法重载的掌握程度。在上面的程序中,类MethLoad中定义了两个具有相同名称methtest的方法,但这两个方法的参数不相同,编译器会根据参数的个数和参数类型来决定应该调用哪个方法。在类MethLoad中先声明了一个classObi对象,接着调用classObj的methest方法,只不过是两次调用中参数的类型不同,第1次调用的参数是int类型的4,第2次调用的参数是 double类型的4.0,因此要调用相对应的方法。int类型的方法返回参数值的4倍,而 double类型的方法返回参数值的2倍。

判断题
单项选择题