我正在创建一个国际象棋游戏,并且试图在游戏板上填充“虚拟”棋子,我创建了一个继承自超类棋子的子类。子类称为虚拟。无论如何,我试图通过创建它的一个实例

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


虚拟类中的构造函数不执行任何操作,而graphics2d绘制方法则不执行任何操作。但是,编译时出现错误。它说:“不兼容的类型件=新的Dummy();必需的:件[] []找到的:件”

但是,由于这是Piece的子类,因此此声明是否允许?

最佳答案

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

Piece[][] pieces = new Piece[8][8];
pieces[0][0] = new Dummy();  // or whichever element you want

关于java - 抽象类和多态性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19780038/

10-15 18:58