事实证明, null会先找带子类形参的构造函数; 如果没有子类的, 再找带父类形参的构造函数. 是一个向上寻找的过程.class Test2 { public Test2() { System.out.println("Test2"); } } class Test3 extends Test2 { public Test3() { System.out.println("Test3"); } } public class TempTest { public TempTest(Test2 o){ System.out.println("TempTest.Test2"); } public TempTest(Test3 o){ System.out.println("TempTest.Test3"); } public static void main(String args[]){ TempTest t=new TempTest(null); } }