我正在创建一个国际象棋游戏,我正在尝试使用“虚拟”部分填充我的游戏板,我创建了一个从超类Piece扩展的子类。子类称为Dummy。无论如何我试图通过
创建它的实例 Piece[][] pieces=new Dummy();
dummy类中的构造函数没有像graphics2d paint方法那样做任何事情。但是我在编译时遇到错误。它说“不兼容的类型件=新的虚拟();必需:件[] []发现:虚拟”
但是因为这是Piece的子类,所以这个声明是否允许?
答案 0 :(得分:3)
不要将Dummy
直接分配给数组。首先创建数组,然后将Dummy
分配给数组的其中一个元素。
Piece[][] pieces = new Piece[8][8];
pieces[0][0] = new Dummy(); // or whichever element you want
答案 1 :(得分:2)
您试图在二维中指定一些值而不指定其大小,这是非法的 您必须首先创建阵列,然后分配其大小,然后您可以单独分配其值 你可以这样做:
Piece[][] pieces = new Piece[8][];
pieces[0] = new dummy[8];
pieces[1] = new dummy[8];
希望答案可以帮到你:)