1 给定如下JAVA代码,下列()方法可以加入到Sample类中,并且能够编译正确(选两项)
public class Sample{
public int getSomething(int d){
return d;
}
}
A private int getSomething(int i,String s){}
B public void getSomething(int i){}
C private int getSomething(byte b){return b;}
D public double getSomething(){return 2;}2 指出下列代码中的错误,并说明原因
public class Sample{
public void amethod(int i,String s){}
public void amethod(String s,int i){}
public int amethod(String s1,String s2){}
private void amethod(int i,String mystring){}
public void Amethod(int i,String s){}
private void amethod(int i);
}
请指教!
public class Sample{
public int getSomething(int d){
return d;
}
}
A private int getSomething(int i,String s){}
B public void getSomething(int i){}
C private int getSomething(byte b){return b;}
D public double getSomething(){return 2;}2 指出下列代码中的错误,并说明原因
public class Sample{
public void amethod(int i,String s){}
public void amethod(String s,int i){}
public int amethod(String s1,String s2){}
private void amethod(int i,String mystring){}
public void Amethod(int i,String s){}
private void amethod(int i);
}
请指教!
A 没有return语句
B 返回类型不属于method的signature,不能实现重载考察点,1#大企鹅已经说了
重载就是方法名相同,方法参数列表不同列表,
A选项没有return语句,错误;
B选项中和类原有方法同名同参数,不同返回类型,但是不同返回类型不能作为识别方法的条件
程序调用时,会发生不知道调用哪个方法的情况。
C和D,都有和A不同的参数列表,所以正确第2道题,也是考重载的,如下两个方法错误
public int amethod(String s1,String s2){}
private void amethod(int i,String mystring){}
第一个没有写return语句
第二个的方法参数列表和 public void amethod(int i,String s){} 的相同,所以错。重载就是指,同方法名,不同参数列表,注意,不同参数列表指参数类型不同,参数顺序不同,而不是参数名不同。
方法的重载和覆盖跟返回类型没有关系,只跟方法名跟参数类型参数。
但是C的话,开头是private,按照覆盖原理,子类的访问修饰符必须大于父类修饰符,所以这里会出现编译错误。
这两个题目只是纯粹考语法而已,中国企业爱出这种题目。