调不调用含参构造函数与变量改没改变没必然联系,子类构造函数第一句代码有三种格式:this(参数),super(参数),还有就是什么也不写。
第一种表示调用本类重载的构造函数,第二种表示调用父类的构造函数,第三种表示调用父类的空参数构造函数。
注意两点:
1、如果父类中没有空参数构造函数,则子类必须用super(参数)指明调用哪个父类构造函数或者调用本类重载构造函数
2、不可能每个子类构造函数第一句都是this(参数),这样相当于进入死循环,编译失败。换言之,至少有一个子类构造函数会调用父类构造函数。
如何调用父类构造函数就很简单了:
第三种方式即默认调用父类空参构造函数,如果想调用父类特定的构造函数,用语句super(变量类型 变量名,变量类型 变量名,、、、),即可。
谢谢! |