协助建立多个级别的体育比赛

时间:2013-03-10 01:56:11

标签: java class inheritance

* 更新的代码 *我必须编写一个封装体育游戏的类,它继承自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;
            }
}
}

1 个答案:

答案 0 :(得分:1)

因为您的SportsGame“是”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;
    }
}

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