gpt4 book ai didi

java - 尝试在Java中访问子类变量

转载 作者:行者123 更新时间:2023-12-03 02:28:05 24 4
gpt4 key购买 nike

public void movePiceTo(int x, int y, Piece pieceToMove) {

if(pieceToMove.canMove(board, pieceToMove.getX(), pieceToMove.getY(), x, y)){ //Check if the piece canMove to the location

if(board[x][y] == null) { //Check if the location is empty

removePiece(pieceToMove.getX(), pieceToMove.getY());
board[x][y] = pieceToMove;

if(pieceToMove instanceof Pawn) {
pieceToMove = (Pawn)pieceToMove;
pieceToMove.isFirstMove = false;
}

此代码片段控制棋子的移动。在底部 3 行,它尝试将 Pawn 类的 isFirstMove 变量更改为 false,因为它不再是 Pawn 的第一次移动。但我很难更改变量,因为pieceToMove 对象基本上是一个Piece 类(Pawn 的父类(super class)),而不是Pawn 类。我怎样才能顺利地做到这一点?

最佳答案

您将 pieceToMove 转换为 Pawn,但变量的类型仍然是 Piece

试试这个:

if(pieceToMove instanceof Pawn) {
Pawn pawnToMove = (Pawn) pieceToMove;
pawnToMove .isFirstMove = false;
}

关于java - 尝试在Java中访问子类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46235703/

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