java - 成员变量在声明时未能初始化

标签 java variables subclass member

使用Java,我试图在声明时初始化成员变量,但由于某种原因,变量保持默认值,例如0、空等。

请查看示例代码片段,它演示了我想要实现的目标:

public class B extends A {

Map<Integer, Integer> map = new HashMap <Integer, Integer>();
int number = 10;

public B() {
  super();
}

public Map getMap() {
  return map;
}

public int getNumber() {
  return number;
}

}

代码的重要部分是它是一个子类,并且我试图在声明时初始化两个成员变量。当我进入构造函数时,map 和 number 的值分别为 null 和 0,这是为什么?

最佳答案

根据规范,基类的构造函数在初始化类 B 的成员之前执行。

另请参见此处:Java Constructor and Field Initialization Order

关于java - 成员变量在声明时未能初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10787818/

相关文章:

c - 将任意结构从 C 传递到 LUA 并访问它

powershell - 如何将变量从一个 If 语句传递到 Powershell 中的另一个 If 语句?

c++ - "New"实现与 vtk 和子类

c++ - 使用使用私有(private)字段的基类方法

ios - 将参数传递给 Swift 3 中的 UIView 子类

java - Grails 调度错误

java - AsyncTask 中 ProgressDialog 的 NullPointerException

javascript - 如何在 JavaScript 中执行具有 If/else 条件的变量合并?

java - 如何在Java中使用自动代理配置脚本

java - put 不适用于 HashMap 类型