原文
java继承中子类是不会继承父类的构造函数的,只是必须调用(隐式或者显式),如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super (必须放在子类构造方法的第一行)关键字调用父类的构造器并配以适当的参数列表。
如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。
1.总结:
-
构造函数是不能继承的,只是用来在子类调用,(如果父类没有无参构造函数,创建子类时,必须在子类构造函数代码体的第一行显式调用父类的有参数构造函数,否则不能编译);
-
如果父类没有有参构造函数,那么在创建子类时可以不显式调用父类构造函数,系统会默认调用父类的无参构造函数super();
-
如果父类没有无参构造函数,那系统就调不了默认的无参构造函数了,所以不显示调用编译也就无法通过了;
2.补充说明:
1.在java中,创建有参构造函数后,系统就不再有默认的无参构造函数
2.如果父类中没有任何构造函数,系统会默认有一个无参的构造函数