Java中子类与父类的构造方法的调用关系
2006-12-17 16:48
691 查看
在 Java 中,无论是 explicit 还是 implicit 方式,都要求在子类的构造方法中调用其父类的构造方法。如果父类无构造方法(其实是一个默认无参的构造方法),那么子类的构造方法中会自动进行调用;如果 父类有自己的构造方法(这时父类不会有默认无参的构造方法),那么在子类的构造方法中,必须要调用父类的某个构造方法,而且必须是在构造方法的第一个语句 中进行调用。
究其原因,想必是 Java 语言设计者,要求子类有责任保证它所继承的父类尽快进入到一个稳定、完整的状态中。试想,如果没有这个约束,那么子类的某个继承自父类的方法可能会使用到父类中的一些变量,而这些变量并没有进行初始化,从而产生一些难以预料的后果,因此构造子类的对象前,必须构造父类的对象,并将之隐含于子类对象之中,使用关键字super引用父类对象。
也因此,当一个类的构造方法是 private 时,它是不可被 extends 的,因为子类构造方法难以调用到这个父类的构造方法。
更多,请访问:Open your thoughts
究其原因,想必是 Java 语言设计者,要求子类有责任保证它所继承的父类尽快进入到一个稳定、完整的状态中。试想,如果没有这个约束,那么子类的某个继承自父类的方法可能会使用到父类中的一些变量,而这些变量并没有进行初始化,从而产生一些难以预料的后果,因此构造子类的对象前,必须构造父类的对象,并将之隐含于子类对象之中,使用关键字super引用父类对象。
也因此,当一个类的构造方法是 private 时,它是不可被 extends 的,因为子类构造方法难以调用到这个父类的构造方法。
更多,请访问:Open your thoughts
相关文章推荐
- Java中子类与父类的构造方法的调用关系
- Java中子类与父类的构造方法的调用关系
- Java中子类与父类的构造方法的调用关系
- Java中子类与父类的构造方法的调用关系
- Java继承,子类实例化时,调用父类的无参构造方法
- Java学习笔记54. 子类对父类构造方法的隐式调用
- 关于子类和父类之间的方法,构造方法调用关系
- Java中子类调用父类构造方法的问题分析
- java中子类调用父类的构造方法
- [转]Java中子类调用父类构造方法的问题分析
- Java中静态代码块,非静态代码块,以及父类与子类的构造方法的之间调用顺序
- Java子类调用父类的有参和无参的构造方法
- java中的继承(子类调用父类构造方法还不懂)
- Java之Object构造方法(创建子类对父类构造方法的调用)
- Java子类调用父类构造方法
- Java多态 实例子类自动调用父类为空的构造方法 成员变量不支持Override 可写,没多态效果
- Java里子类调用父类构造方法问题
- Java中不要在父类的构造方法中调用会被子类重写的方法
- 为什么java的子类中必须调用父类的构造方法
- java中实例化子类时会不会调用父类的构造方法?