子类会继承父类的构造方法
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(); } }需要引用父类才不会报错。 至于原因可能与程序的安全与接口有关,程序不应该给你一个不明确定义的方法,所以默认在子类前加载方法。