java语言基础|关于子类和父类的构造方法

xiaoxiao2021-02-27  198

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

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(); } }

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

转载请注明原文地址: https://www.6miu.com/read-13220.html

最新回复(0)