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 をタイプに解決できません - ボードをタイプに解決できません

誰かが私の間違いを教えてもらえますか?

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 に答える