0

私は、abstract 内でclass2 つのコンストラクターを定義したいと考えています。

の新しいインスタンスを作成するときに、class呼び出されたものに応じて toString が異なるものを返すようにします。

消防車Class

public class FireEngine extends EmergencyVehicle {  

    private String colour;

    public FireEngine(String colour) {
        super (colour);

    }
    public FireEngine() {
        this("red");

    }

    public String toString () {
        if (colour == "red") {
            return "red";
    }   else
        return "no";
    }
}

EmergencyVehicleクラス:

public abstract class  EmergencyVehicle extends RoadVehicle {

    public boolean codeBlue = false;

    public EmergencyVehicle(String colour){
        super(colour);
    }

    public boolean isEmergency () {
        if (codeBlue == true) {
            return true;
        } else {
            return false;
        }
    }

    public void setEmergency(boolean newEmergency) {
        codeBlue = newEmergency;
    }

}

これは宿題の演習なので、答え自体は必要ありませんが、上記のコードは意味がありますか?

たとえば、新しい EmergencyVehicle を追加する場合、追加する車両の色に応じた if ステートメントが必要です。

4

1 に答える 1

4

1回目の発言

電話しないで

this("red");

デフォルトのコンストラクターで、

colour = "red";

コンストラクターが何か他のことをしていない限り。EmergencyVehicle(String colour) RoadVehicle(String colour)

2回目の発言

を使用して比較しないでください

if (colour == "red")

使用する

if ("red".equals(colour))

3回目の発言

方法

public String toString()

インスタンスの文字列表現を返すことになっています。あなたの実装は、あまり有益ではないredorのみを返します。no次のようなものを使用します

return("FireEngine(colour=" + colour + ")");
于 2016-11-28T11:37:39.847 に答える