日期:2014-05-20  浏览次数:20705 次

java新手提问,望大家帮忙
java中的重载除了要求参数列表不一样以外,访问控制符和返回值类型有没有要求?
举个例子就是以下两个函数是不是属于重载?

public   void   amethod(int   i){}

private   int   amethod(int   i,int   j){return   99;}

还有如果两个函数相同是不是意味着所有的标签元素(访问控制符   返回值类型   参数列表)都要一致?

小弟刚注册   ,   分不多,给5分吧

------解决方案--------------------
呃...你的例子属于重载...
两个函数相同是不是意味着所有的标签元素(访问控制符 返回值类型 参数列表)都要一致?
访问控制符不用一致...
返回值类型和参数列表要一致...
不一致就成为方法重载了...
小弟也是新手...如是理解...希望能帮到你..呵呵...

------解决方案--------------------
二楼的有误导

这两个方法是不会重载的
访问控制符 返回值类型也不会导致重载

下面是例子

package overridetest;

/**
*
* @author zdjray
*/
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
OverrideMethodChild overrideMethod = new OverrideMethodChild();

overrideMethod.test(1, "str ");
overrideMethod.test( "str ", 1);
}

}


package overridetest;

/**
*
* @author zdjray
*/
public class OverrideMethodBase {
public void test(int i, String str) {
System.out.println( "Base: " + i);
System.out.println( "Base: " + str);
}
}

package overridetest;

/**
*
* @author zdjray
*/
public class OverrideMethodChild extends OverrideMethodBase {
public void test(String str, int i) {
System.out.println( "Child: " + i);
System.out.println( "Child: " + str);
}
}