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

来源:互联网 发布:剑三长歌脸型数据 编辑:程序博客网 时间:2024/06/07 23:57

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

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

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