java - 抽象类和多态性

标签 java polymorphism abstract

我正在创建一个国际象棋游戏,我正在尝试用“虚拟”棋子填充我的游戏板,我创建了一个从父类(super class) Piece 扩展的子类。该子类称为 Dummy。无论如何,我正在尝试通过创建它的实例

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

虚拟类中的构造函数与graphics2d绘制方法一样不执行任何操作。但是我在编译时遇到错误。它说“不兼容的类型pieces = new Dummy();必需:Piece[][]找到: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/

相关文章:

java - 无法使用加速度计坐标

java - 为什么我在 Windows 中将\r\r\n 作为换行符而不是\r\n 作为换行符

java - 使用 @JoinColumn 保留不指向任何 ID 属性的实体

java - libGDX:游戏通用速度

.net - 多态泛型

dart - Dart将其作为构造函数中的参数传递

.net - F# 多态性

java - 如何在 JPA 中定义多态性

java - 防止子类添加方法

java - 如何在另一个类中调用抽象内部类方法?