【发布时间】:2012-08-29 15:23:49
【问题描述】:
根据我的理解,默认构造函数将对象的状态初始化为默认值,所以如果我提供像这样的显式无参数公共构造函数,那么 d 和 e 的值如何仍然被初始化为零,因为在这个如果不调用默认构造函数。
public class B extends A{
private int d;
private int e;
public B() {
System.out.println(d);
System.out.println(e);
}
}
编辑:: 默认构造函数所做的唯一事情就是调用super() 那么如果我在这里明确提到了一个构造函数并且A 有一个受保护的变量说c,它在其构造函数中被初始化为17。由于我使用自己的构造函数,我是否应该明确调用super() 才能看到这种变化?为什么B仍然通过继承得到17的值?
【问题讨论】:
标签: java