0

我正在创建一个国际象棋游戏,我试图用“虚拟”棋子填充我的游戏板,我创建了一个从超类 Piece 扩展的子类。子类称为 Dummy。无论如何,我正在尝试通过

 Piece[][] pieces=new Dummy();

虚拟类中的构造函数与 graphics2d 绘制方法一样不执行任何操作。但是我在编译时遇到错误。它说“不兼容的类型碎片 = new Dummy(); required: Piece[][] found: Dummy”

但是既然这是 Piece 的一个子类,这个声明是允许的吗?

4

2 回答 2

3

不要将 aDummy直接分配给数组。首先创建数组,然后将 分配给数组的Dummy一个元素。

Piece[][] pieces = new Piece[8][8];
pieces[0][0] = new Dummy();  // or whichever element you want
于 2013-11-05T00:44:21.960 回答
2

您试图在二维中分配一些值而不分配其大小,这是非法的。
您必须先创建数组并分配其大小,然后才能单独分配其值。
你可以这样做:

Piece[][] pieces = new Piece[8][];
pieces[0] = new dummy[8];
pieces[1] = new dummy[8];

希望答案可以帮助你:)

于 2013-11-05T00:59:23.427 回答