package day01;
import java.util.ArrayList;
import java.util.Collection;
public class Test {
public static void main(String[] args) {
test(null);
}
public static void test(int i){
System.out.println("int");
}
public static void test(ArrayList arrayList){
System.out.println("arrayList");
}
public static void test(Object o){
System.out.println("object");
}
public static void test(Collection c){
System.out.println("collection");
}
}
依据java就近原则此段代码输出结果为"arrayList",test在调用时会在下面几个方法中找到最子类,以代码为例,最子类是ArrayList,所以执行该方法,输出结果为arrayList,如果这段代码里没有ArrayList,则会执行Collection,假设也没有Collection,最后会执行Object.
如果代码中再出现一个子类,例如test(String str){},这时会报错,不能同时有两个同级别的子类。