多个构造函数和 if 语句

multiple Constructors and if Statement

我想在我的摘要中 class 定义两个构造函数。

当创建 class 的新实例时,我希望 toString 为 return 不同的内容,具体取决于调用的内容:

消防车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 class:

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 语句,这取决于我添加的车辆是什么颜色。

第一个备注

不要打电话

this("red");

在默认构造函数中,做

colour = "red";

除非 EmergencyVehicle(String colour) RoadVehicle(String colour) 构造函数正在做其他事情。

第二个备注

不比较使用

if (colour == "red")

使用

if ("red".equals(colour))

第三个备注

方法

public String toString()

应该是 return 实例的字符串表示形式。您仅实施 returns redno,这不是很有用。使用像

这样的东西
return("FireEngine(colour=" + colour + ")");