我被指示创建一个具有三个子类[RaceCar,Car和Truck]的类Vehicle,然后将一个子类放入Car中,如UML中所示。
但是当我尝试通过说
来做到这一点public class HybridCar extends Car
我收到错误。我知道在java中我不能双重继承,所以如何格式化HybridCar构造函数?
这是我的Car
课程。
public class Car extends Vehicle{
double luggageCap;
double passengerCap;
public Car(String make, String model, double engSz, String id, String year, String color, double lugCap, double passCap){
super(make, model, engSz, id, year, color);
luggageCap = lugCap;
passengerCap = passCap;
}
public double getLuggageCap(){
return luggageCap;
}
public double getPassengerCap(){
return passengerCap;
}
public String toString(){
return super.toString()+", "+luggageCap+", "+passengerCap;
}
}
这是我的HybridCar
课程:
public class HybridCar extends Car{
double luggageCap;
double passengerCap;
double batteryCap;
public HybridCar(String make, String model, double engSz, String id, String year, String color, double lugCap, double passCap, double batCap){
super(make, model, engSz, id, year, color);
luggageCap = lugCap;
passengerCap = passCap;
batteryCap = batCap;
}
public String toString(){
return super.toString()+", "+luggageCap+", "+passengerCap+", "+batteryCap;
}
}
这是错误日志:
HybridCar.java:9:错误:构造函数Car类中的Car不能 适用于给定类型;超级(制造,型号,engSz,id,年份,颜色); ^ required:String,String,double,String,String,String,double,double found:String,String,double,String,String,String reason:actual和 形式参数列表的长度1错误 -
答案 0 :(得分:1)
错误:类Car中的构造函数Car不能应用于给定类型; 超级(制造,型号,engSz,id,年份,颜色); ^必填: String,String,double,String,String,String,double,double found: String,String,double,String,String,String reason:actual和formal 参数列表长度1错误
如果仔细查看Car
构造函数,则有8个特定类型的参数:
Car(String make, String model, double engSz, String id, String year, String color, double lugCap, double passCap)
但是,您只传递了6个参数:
super(make, model, engSz, id, year, color);
问题似乎是您没有将所需参数传递给Car
构造函数。
将您的HybribCar
构造函数更改为:
super(make, model, engSz, id, year, color,lugCap, passCap);
旁注 - 确保您向每个类构造函数传递了正确数量的参数,并确保每个参数的类型匹配。