请帮我优化一下这段代码:package W15; class Car{ private String color; public Car(String color){ this.color=color; } public String getColor(){ return color; } public void setColor(){ this.color=color; } public void info(){ System.out.println("汽车在马路奔跑"); } class Truck extends Car{ public Truck(String color) { super(color); } public void info(){ super.info(); System.out.println("货车在拉货"); } public void showColor(){ System.out.println("货车的颜色:"+super.color); } } } public class P4 { public static void main(String[] args) { Truck truck=new Truck("紫色"); truck.info(); truck.showColor(); } }
时间: 2024-02-14 12:08:01 浏览: 24
这段代码的问题在于:
1. `setColor` 方法缺少参数,应该接收一个颜色值并设置给 `color` 实例变量。
2. `Truck` 类应该是 `Car` 类的子类,应该使用 `extends` 关键字来继承 `Car` 类。
3. `showColor` 方法中的 `super.color` 应该改为 `getColor()` 方法。
下面是优化后的代码:
```java
package W15;
class Car {
private String color;
public Car(String color) {
this.color = color;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public void info() {
System.out.println("汽车在马路奔跑");
}
}
class Truck extends Car {
public Truck(String color) {
super(color);
}
public void info() {
super.info();
System.out.println("货车在拉货");
}
public void showColor() {
System.out.println("货车的颜色:" + getColor());
}
}
public class P4 {
public static void main(String[] args) {
Truck truck = new Truck("紫色");
truck.info();
truck.showColor();
}
}
```
优化后的代码使用了 `setColor` 方法来设置颜色,使用了 `extends` 关键字来继承 `Car` 类,同时修复了 `showColor` 方法中的错误。