根据我的理解,默认构造函数将对象的状态初始化为默认值,所以如果我提供像这样的显式无参数公共构造函数,那么 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 的值?