为什么编译器将方法调用与最专业的类匹配,而不是模棱两可?
请参见以下示例。 W打印在屏幕上。
class X {}
class Y extends X {}
class Z extends Y {}
class W extends Z {}
public class TestClass{
public void method(Object o){
System.out.println("O");
}
public void method(X x){
System.out.println("X");
}
public void method(Y y){
System.out.println("Y");
}
public void method(Z z){
System.out.println("Z");
}
public void method(W w){
System.out.println("W");
}
public static void main(String args[]){
TestClass tc = new TestClass();
tc.method(null);
}
}