从抽象类错误继承方法

时间:2013-11-15 01:12:35

标签: java inheritance methods abstract

我有一个名为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      一种类型      - 董事会无法解决      输入

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

2 个答案:

答案 0 :(得分:1)

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

您不能认为仅仅因为父类导入了您的子类也导入类的类。

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

答案 1 :(得分:0)

来自JavaDocs

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

请在这里阅读

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