一、重载:
1. 方法名相同,函数签名不同(参数顺序、类型、个数)
2. 返回类型和修饰符可以不同(访问控制符、static、final等)
3. 子类可以和父类形成重载
class Base {
public void test(){};
}
class Sub extends Base {
public void test(String name){};
}
4. 构造方法可以重载
5. 静态方法可以重载、抽象方法可以重载
6. 静态方法和非静态方法可以形成重载
public static void test() {
}
public void test(int a) {
}
7. 基本类型可以和包装类形成重载,如:
public void test(int a) {
System.out.println("int");
}
public void test(Integer a) {
System.out.println("Integer");
}
8. 数组和对应的可变参数不能形成重载,如:
public void test(String[] a){}
public void test(String... a){} //编译错误