关于抽象和构造函数的新手问题。我觉得我缺少明显的东西。

我有一个抽象类Piece,这是构造函数:

public abstract class Piece {

    private int[] location = new int[2];
    private final char color;

    public Piece(char color, int[] location) {
        this.location = location;
        this.color = color;
    }
}

我有一个扩展Piece的类:
public class Bishop extends Piece{

    public Bishop(char color, int[] location) {
        super(color, location);
    }
}

我正在尝试测试。但是,以下代码给出错误:表达式的非法开始,类型的非法开始,缺少“;”
public class testing {
    Piece blackBishop = new Bishop('b', {0,0});
}

所有这些文件都在同一包中。在寻找解决方案数小时后,我决定寻求帮助。请让我知道我做错了什么。

最佳答案

{0,0}仅在声明int数组变量(int[] var = {0,0};)时才能单独使用。

更改

Piece blackBishop = new Bishop('b', {0,0});


Piece blackBishop = new Bishop('b', new int[] {0,0});

关于java - 使用抽象创建对象失败,可能是我看不到的简单修复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30838151/

10-10 00:53