1

好吧,我有一个名为 AbstractPlayer 的界面

package gr.auth.ee.dsproject.crush.player;

import gr.auth.ee.dsproject.crush.board.Board;

import java.util.ArrayList;

public interface AbstractPlayer
{
    public void setId (int id);

    public int getId ();

    public void setName (String name);

    public String getName ();

    public void setScore (int score);

    public int getScore ();

    public int[] getNextMove (ArrayList<int[]> availableMoves, Board board);

}

以及我必须制作的名为 RandomPlayer 的课程

package gr.auth.ee.dsproject.crush.player;


public class RandomPlayer implements AbstractPlayer 
{

int id;
String name;
int score;
public RandomPlayer () {

}
public RandomPlayer (Integer pid) {
    id=pid;
}
public int getId (){
    return id;
}
public String getName (){
    return name;
}
public int getScore (){
    return score;
}
public void setId(int idSet){
    id=idSet;
}
public void setName(String nameSet){
    name=nameSet;
}
public void setScore(int scoreSet){
    score=scoreSet;
}



public int[] getNextMove (ArrayList<int[]> availableMoves, Board board) {
    int k;
    k=availableMoves.size();
    int randMove;
    randMove=(int)(Math.random()*k);
    int[] arrayMyMove;
    arrayMyMove= new int[3];
    arrayMyMove=getRandomMove(availableMoves , randMove);
    int[] arrayReturn;
    arrayReturn = new int[4];
    arrayReturn[0]=arrayMyMove[0];
    arrayReturn[1]=arrayMyMove[1];
    int movement=arrayMyMove[2];
    if (movement==0) {
        arrayReturn[2]=arrayReturn[0]-1;
    } else if (movement==2) {
        arrayReturn[2]=arrayReturn[0]+1;
    } else if (movement==1) {
        arrayReturn[3]=arrayReturn[1]-1;
    } else if (movement==3) {
        arrayReturn[3]=arrayReturn[1]+1;
    }
    return arrayReturn;
}

我得到这个错误

RandomPlayer 类型必须实现继承的抽象方法 AbstractPlayer.getNextMove(ArrayList, Board)

并且在我实现方法 getNextMove 的行上,我收到此错误 此行有多个标记 - ArrayList 无法解析为类型 - Board 无法解析为类型

有人可以告诉我我的错误是什么吗?

4

2 回答 2

1

您需要在每个使用它的类中导入一个类。

您不能仅仅因为父类导入一个类就假设您的子类也导入一个类。

简而言之,像第一堂课一样导入 ArrayList 和 Board。

于 2013-11-15T01:14:53.573 回答
0

JavaDocs

当抽象类被子类化时,子类通常为其父类中的所有抽象方法提供实现。但是,如果不是,则子类也必须声明为抽象的。

请阅读这里

http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

于 2013-11-15T01:20:40.133 回答