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 に答える