java继承时,实例化子类,是否会默认调用父类构造方法
1个回答
展开全部
在
Java
中,无论仿肆是
explicit
还是
implicit
方式,都要求在子类的构造方法中调用其父类的构造方法。如果父类无构造方法(其实是一个默认无参的构造方法),那么子类的构造方法中会自动进行调用;如果
父类有自己的构造方法(稿大败这时父类不会有默认无参的构造方法),那么在子类的构造方法中,必须要调用父类的某个构造方法,而且必须是在构造方法的第一个语句
中进行调用。
究其原因,想必是
Java
语言设计者,要求子类有责任保证它所继承的父类尽快进入到一个稳定、完整的状态中。试想,如果没有这个约束,那么子类的某个继承自父类的方法可能会使用到父类中的一些变量,而这些变量并没有进行初始化,从而产生一些难以预料的后果。
也因此,当一个类的构造方法是
private
时,它是不可被
extends
的,因为子类构造方法难以调用到这个父类的构造键颤方法。
Java
中,无论仿肆是
explicit
还是
implicit
方式,都要求在子类的构造方法中调用其父类的构造方法。如果父类无构造方法(其实是一个默认无参的构造方法),那么子类的构造方法中会自动进行调用;如果
父类有自己的构造方法(稿大败这时父类不会有默认无参的构造方法),那么在子类的构造方法中,必须要调用父类的某个构造方法,而且必须是在构造方法的第一个语句
中进行调用。
究其原因,想必是
Java
语言设计者,要求子类有责任保证它所继承的父类尽快进入到一个稳定、完整的状态中。试想,如果没有这个约束,那么子类的某个继承自父类的方法可能会使用到父类中的一些变量,而这些变量并没有进行初始化,从而产生一些难以预料的后果。
也因此,当一个类的构造方法是
private
时,它是不可被
extends
的,因为子类构造方法难以调用到这个父类的构造键颤方法。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询