Java 如何使用超级 class 构造函数设置 child class 实例变量

Java how to set child class instance variable with super class constructor

我有一个 child class 和两个实例变量 colorposition。构造函数接受这两个。我首先调用包含 setColor(color)->this.color = colorsuper(color) 构造函数。根据调试工具,这是为超级 class 设置 this.color 而不是调用该方法的 child class。这不是使用超级 class 构造函数设置实例变量的正确方法吗?

Rook.java:

public Rook(String color, Position pos) {
    super(color);
    // at this point this.color == null (for Rook)
    initPosition(pos);
}

GenericPiece.java:

public GenericPiece(String color) {
    setColor(color);
    // at this point this.color == "white" (for GenericPiece)
}

public void setColor(String color) throws InvalidPieceColorError {
    if (Color.checkValid(color)) {
        this.color = color;
    } else {
        throw new InvalidPieceColorError(color);
    }
}

!Here's a picture of debugging information1

颜色字段应该只是父项的一部分 class,而不应在子项中重复。继承约为 shared state,因此颜色将由 Rock 类型继承,并将具有 public 或受保护的访问权限。