我有一个抽象类
public abstract class Car {
private int carId;
public Car(int carId) {
this.carId = carId;
}
public int getCarId(c) {
return carId;
}
public void setCarId(int carId) {
this.carId = carId;
}
}
public class Jeep extends Car {
private String jeepModel;
public Jeep(int carId) {
super(carId);
}
public String getJeepModel() {
return this.jeepModel;
}
public setJeepModel(String jeepModel) {
this.jeepModel = jeepModel;
}
}
public class AbstractClassExample {
public Car car;
public static void main(String[] args) {
car = new Jeep(1);
}
}
当我这样做时,我收到以下错误:类型不匹配:无法从吉普转换为汽车
我在这里做错了什么?
答案 0 :(得分:3)
我不确定您为什么会收到确切的错误消息,但我发现您的代码中还有其他一些奇怪的内容:
this.id = carId
但您没有成员字段 id 答案 1 :(得分:0)
你使用super(carId),它调用父类构造函数。在抽象类汽车中,你
没有定义构造函数。因此,只有默认构造函数可用[Car(){}]
溶液
(1)在汽车类中创建构造函数
car(int CarId)
{this.CarId=carId;}
(2)或致电super()