回 帖 发 新 帖 刷新版面

主题:[原创]SCJP考试试题解析十



SCJP考试试题解析十

我的QQ号:2535279 


www.javaedu.com.cn

public class Certkiller{
    public static void go(short n){    System.out.println("short");}
    public static void go(short n){    System.out.println("SHORT");}
    public static void go(long n){    System.out.println("long");}
    public static void main(String[] args){
        short y=6;
        int z=7;
        go(y);
        go(z);
    }
}

what is the result?

A. short 
   long
   
B. SHORT
   long
   
C. Compilation fails

D. An exception is thrown at runtime

这个题目的重点是考察你对于重载的掌握程度.

重载是说可以根据所传递参数数据类型的不同,会调用对应版本的方法来进行对应的动作,而这个程序中,第一个go()方法和第二个go()方法,名字与参数数据类型完全相同,当我们在main()方法中,使用go(y)根本就不知道要去调用哪个方法.所以,这里会抛出一个编译错误,不能通过编译.

另外补充一句:返回值类型不可用作为方法重载的区别根据.

回复列表 (共2个回复)

沙发

C. Compilation fails

public static void go(short n){    System.out.println("short");}
public static void go(short n){    System.out.println("SHORT");}

This two method is the same one

板凳

Yes ,you are right.So the result is :compilation fails

我来回复

您尚未登录,请登录后再回复。点此登录或注册