子类会继承父类的构造方法

class testsuper
{
    public testsuper()
    {
        System.out.println("120");
    }
}


public class Test extends testsuper{
    public Test()
    {
        System.out.println("110");
    }

    public static void main(String[] args) {
        Test test=new Test();
    }
}

这里的输出为120 110
子类会先调用父类的构造方法,当然子类可以用super()来显示调用父类的构造方法,如果不写,默认调用父类无参数的构造方法。
等价于

public Test()
    {
        super();
        System.out.println("110");
    }

但是如果父类只有有参数的构造方法在子类没有用super()显示调用构造方法,那么编译器会报错

class testsuper
{
    public testsuper(String s)
    {
        System.out.println("120");
    }
}
public class Test extends testsuper{
    public Test()
    {
        super("s");
        System.out.println("110");
    }   
    public static void main(String[] args) {
        Test test=new Test();
    }
}

需要引用父类才不会报错。
至于原因可能与程序的安全与接口有关,程序不应该给你一个不明确定义的方法,所以默认在子类前加载方法。