抽象类和多态

时间:2013-11-05 00:42:12

标签: java polymorphism abstract

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

创建它的实例
 Piece[][] pieces=new Dummy();

dummy类中的构造函数没有像graphics2d paint方法那样做任何事情。但是我在编译时遇到错误。它说“不兼容的类型件=新的虚拟();必需:件[] []发现:虚拟”

但是因为这是Piece的子类,所以这个声明是否允许?

2 个答案:

答案 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];

希望答案可以帮到你:)