是否可以在Java子类中使用overriden函数?

时间:2017-09-18 02:11:42

标签: java inheritance

问题出在这里:我正在写一个国际象棋程序,我有一个超类Piece,它有一个canMove函数,用于确定目标是否是国际象棋的有效位置。

public abstract boolean canMove(Piece[][] board, int fromX, int fromY, int toX, int toY);

我试图将其扩展到其他Piece子类(Pawn,Rook等)并且它们都运行良好。

然而,当我试图为King类扩展它时,我不得不在另一个King的函数中使用这个canMove方法来检查状态是否为checkMate。

然而,这需要我将King的canMove函数更改为static,当我这样做时,它要求我删除@Override注释

@Override
public static boolean canMove(Piece[][] board, int fromX, int fromY, int toX, int toY) {

这导致我更改了canMove of King的名称,但仍然让我创建一个空白的canMove函数,因为它是一个具有抽象canMove方法的超类Piece的子类。

如何防止此问题?

0 个答案:

没有答案