我有一个名为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, 板)
以及我实现方法getNextMove的那一行 我收到这个错误 此行有多个标记 - 无法解析ArrayList 一种类型 - 董事会无法解决 输入
有人能告诉我我的错误是什么吗?
答案 0 :(得分:1)
您需要在每个使用它的类中导入一个类。
您不能认为仅仅因为父类导入了您的子类也导入类的类。
简而言之,就像在第一堂课中那样导入ArrayList和Board。
答案 1 :(得分:0)
来自JavaDocs
当抽象类被子类化时,子类通常为其父类中的所有抽象方法提供实现。但是,如果没有,则子类也必须声明为abstract。
请在这里阅读
http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html