gpt4 book ai didi

Java如何使用父类(super class)构造函数设置子类实例变量

转载 作者:行者123 更新时间:2023-12-02 08:43:44 25 4
gpt4 key购买 nike

我有一个带有两个实例变量colorposition的子类。构造函数接受这两者。我首先调用包含 setColor(color)->this.color = colorsuper(color) 构造函数。根据调试工具,这是为父类(super class)而不是调用该方法的子类设置 this.color 。这不是使用父类(super 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 information 1

最佳答案

颜色字段只能是父类的一部分,不能在子类中重复。继承与共享状态有关,因此颜色将由Rock类型继承,并且具有公共(public)或 protected 访问权限。

关于Java如何使用父类(super class)构造函数设置子类实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61221070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com