0

*更新的代码*我必须编写一个封装体育游戏的类,它继承自 Game。其中比赛具有以下附加属性:比赛是团队比赛还是个人比赛,比赛能否以平局收场。

我不熟悉继承,想知道你们是否可以帮助我走上正确的道路。我整天都在阅读有关继承的信息,只是不明白。我的问题是:我如何构建这个项目来合并继承,可以/应该继承什么以及你是如何做到的?谢谢

我想我可能已经想通了,但是有人可以帮助使用 toString 方法以及如何编写 canTie 代码吗?

public class Game 
{
public static void main(String[] args) 
{
    Question39 gm1 = new Question39();
    System.out.println("Game type: "+ gm1.getGameType() + "\n"
                       + "Can it tie: " + gm1.getCanTie());
}

public Game()
{

}  
}

二等舱

public class SportsGame extends Game 
{
public SportsGame()
{
    super();
}

public String toString()
{
    String output ="hey"; 
    return output;
}

 //Accessors (Getters)
public String getGameType() 
{
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter number of players");
    int players = scan.nextInt();

    if (players > 2)
    {
        return "Team";
    }    
    else 
    {
        if (players ==2)
        {
            return "Individual";
        }

        else
        {
            return "N/A";
        }
    }

}

public String getCanTie()
{
    String canTie = "yes";
    String cantTie = "no";

    if (1==1) 
            {
                return canTie;
            }
    else 
            {
                return cantTie;
            }
}
}
4

1 回答 1

1

因为你的SportsGame"is-a" Game,正如你所说,它应该继承自Game.

其语法是:

public class SportsGame extends Game {
    // ....
}

你的课程应该是这样的:

// In Game.java:
public abstract class Game {
    public abstract boolean isTeamGame();
    public abstract boolean canEndInTie();
}

 

// In SportsGame.java:
public class SportsGame extends Game {
    // You'll need to implement the methods from Game here.
    // For example:

    @Override
    public boolean isTeamGame() {
        return true;
    }

    @Override
    public boolean canEndInTie() {
        return true;
    }
}

或者,您可以将这些值初始化为构造函数中的变量,然后从这些方法中返回它们。

于 2013-03-10T01:58:07.827 回答