对于类的方法(包括从父类中继承的方法),如果两个方法的参数名相同,但参数不一致,那么可以说一个方法是另一个方法的重载方法。


方法的重载必须满足以下条件:

1)方法名相同

2)方法的参数类型、个数、顺序至少有一项不同

3)方法的返回类型可以不相同

4)方法的修饰符可以不相同


*参数签名是指参数的类型、个数和顺序。


注:如果在一个类中有两个方法名相同且参数签名也完全相同的方法,那么Java虚拟机在运行时候就无法决定到底执行哪个方法。


假如在以下TestOverload类中定义了method()方法

public class TestOverload {
    public void method(int i, String str){}
    //加入其他方法

}

下面哪些方法加入到TestOverload类中并能保证编译正确?

A)public void method(String str, int i){}
B)public int method(int i, String str){ return 0; }
C)private void method(int i, String s){}
D)public void Mehtod(int i, String str){}
E)abstract void method(int i);


答案为 A,D