Java中子类与父类的构造方法的调用关系

来源:互联网 发布:工业设计必用的软件 编辑:程序博客网 时间:2024/05/22 00:27

    在 Java 中,无论是 explicit (继承)还是 implicit(实现接口) 方式,都要求在子类的构造方法中调用其父类的构造方法如果父类无构造方法(其实是一个默认无参的构造方法),那么子类的构造方法中会自动进行调用如果 父类有自己的构造方法(这时父类不会有默认无参的构造方法),那么在子类的构造方法中,必须要调用父类的某个构造方法,而且必须是在构造方法的第一个语句 中进行调用

        究其原因,想必是 Java 语言设计者,要求子类有责任保证它所继承的父类尽快进入到一个稳定、完整的状态中。试想,如果没有这个约束,那么子类的某个继承自父类的方法可能会使用到父类中的一些变量,而这些变量并没有进行初始化,从而产生一些难以预料的后果,因此构造子类的对象前,必须构造父类的对象,并将之隐含于子类对象之中,使用关键字super引用父类对象。

        也因此,当一个类的构造方法是 private 时,它是不可被 extends 的,因为子类构造方法难以调用到这个父类的构造方法。

0 0
原创粉丝点击