我想在我的抽象类
中定义两个构造函数。
当创建类
的新实例时,我希望toString根据调用的内容返回不同的内容:
FireEngine 类
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;
}
}
这是一个家庭作业,所以我不需要答案本身,但是上面的代码有意义吗?
例如,如果我添加一个新的紧急车辆,我需要一个 if 语句,具体取决于我添加的车辆的颜色。
最佳答案
第一条评论
不要打电话
this("red");
在默认构造函数中,执行以下操作
colour = "red";
除非 EmergencyVehicle(String color)
RoadVehicle(String color)
构造函数正在执行其他操作。
第二句话
不要使用进行比较
if (colour == "red")
使用
if ("red".equals(colour))
第三条评论
方法
public String toString()
应该返回实例的字符串表示形式。您的实现仅返回 red
或 no
,这并没有提供太多信息。使用类似的东西
return("FireEngine(colour=" + colour + ")");
关于java - 多个构造函数和 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40843360/