尝试运行车辆问题,稍微调试但发现问题出在 Car joe = new Car(1234567,' R',4);
public class Vehicle {
private int engineNum;
private char color;
public void setNum(int num) { engineNum=num; }
public void setColor(char color) { this.color = color; }
public void printVehicle() {
System.out.println("Engine No.: " + engineNum);
System.out.println("Vehicle Color: " + color);
}
class Car extends Vehicle {
private int doors;
public Car(int num, char color, int doors){
setNum(num);
setColor(color);
this.doors = doors;
}
public void printCar() {
System.out.println("=====Car Info=====");
printVehicle();
System.out.println("Car door no.: " + doors);
}
}
public static void main(String[] args) {
**Car joe = new Car(1234567, 'R', 4);**
Car jane = new Car(5678924, 'B', 5);
joe.setColor('W');
joe.printCar();
jane.printCar();
}
}
留言: 无法访问类型为Vehicle的封闭实例。必须使用Vehicle类型的封闭实例限定分配(例如x.new A(),其中x是Vehicle的实例)。
答案 0 :(得分:2)
这里的问题是你将Car定义为Vehicle的内部类。因此,Car对象绑定到Vehicle的特定实例。在您尝试创建Car时,它没有要创建的Vehicle实例,因此出现错误。有两种方法可以解决这个问题: