Java自定义Survey类构造方法中自动生成的super()语句作用是什么
Survey类构造方法中super()语句的作用
你给出的Survey类代码如下:
public class Survey { private String id; private String title; private String description; public Survey(String id, String title, String description) { super(); this.id = id; this.title = title; this.description = description; }
上述代码中Eclipse自动生成的super()语句,作用如下:
- 所有Java自定义类如果没有显式使用
extends指定父类,都会默认隐式继承java.lang.Object根类,你的Survey类本质上是Object的子类,super()的作用就是调用父类Object的无参构造方法。 - Java语法强制规定子类构造方法执行自身的属性赋值等初始化逻辑前,必须先完成父类构造方法的执行,用于完成父类侧的成员初始化。哪怕你手动删除当前构造方法中的
super()语句,Java编译器在编译阶段也会自动在构造方法的第一行补加无参super(),二者的运行效果完全一致。 - Eclipse自动生成构造方法的逻辑默认会把这条编译器隐式添加的语句显式写出,既可以让开发者明确感知到父类构造的调用流程,也方便后续如果需要调整父类构造调用(比如改为调用父类有参构造)时可以直接修改。
内容的提问来源于stack exchange,提问作者swapnil
相关产品推荐
相关产品推荐

