【问题标题】:Inherit methods from abstract class error从抽象类错误继承方法
【发布时间】:2013-11-28 07:02:29
【问题描述】:

我有一个叫做 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 无法解析 到一个类型 - 董事会无法解决 输入

谁能告诉我我的错误是什么?

【问题讨论】:

    标签: java inheritance methods abstract


    【解决方案1】:

    来自JavaDocs

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

    请看这里

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

    【讨论】:

      【解决方案2】:

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

      您不能仅仅因为父类导入了一个类,而您的子类也导入了一个类。

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

      【讨论】:

      • @JimGeor 对 Java 来说,拥有临时导入是有意义的,尤其是因为它们在 99% 的情况下确实必须相同,但事实并非如此。顺便说一句,您的 IDE 应该能够为您管理导入,因此您无需担心它们。
      猜你喜欢
      • 2013-07-01
      • 1970-01-01
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 2012-11-17
      相关资源
      最近更新 更多