我希望在我的抽象class
中定义两个构造函数。
当创建class
的新实例时,我希望toString根据所调用的内容返回不同的内容:
FireEngine 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语句,具体取决于我添加的车辆的颜色。
答案 0 :(得分:4)
第一个备注
不要打电话
this("red");
在默认构造函数中,执行
colour = "red";
除非 EmergencyVehicle(String colour)
RoadVehicle(String colour)
构造函数正在执行其他操作。
第二个备注
请勿使用
进行比较if (colour == "red")
使用
if ("red".equals(colour))
第3版备注
方法
public String toString()
应该返回实例的字符串表示。您的实现仅返回red
或no
,这不是非常有用的信息。使用像
return("FireEngine(colour=" + colour + ")");