创建与Java子子
我是针对创建一个类车辆用三个子类[赛车,汽车和卡车],然后把一个子类为汽车,像显示在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: error: constructor Car in class Car cannot be applied to given types; super(make, model, engSz, id, year, color);^ required: String,String,double,String,String,String,double,double found: String,String,double,String,String,String reason: actual and formal argument lists differ in length 1 error –
error: constructor Car in class Car cannot be applied to given types; super(make, model, engSz, id, year, color);^required: String,String,double,String,String,String,double,double found: String,String,double,String,String,String reason: actual and formal argument lists differ in length 1 error
,如果你在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);
侧面说明 - 确保您传递的参数权数每类的构造函数,并确保类型为每个参数的匹配。
1)错误是什么意思? 2)你可以显示你的HybridCar类的代码吗? 3)“我知道在java中我不能双重继承”,如果HybridCar只继承Car那么这不是问题,那么双重继承是从哪里来的? –
你会得到什么样的错误?也许你只是忘了放大括号? – vhula
公共类HybridCar延伸汽车双行李箱盖; double passengerCap; 双层电池盖; public HybridCar(String make,String model,double engSz,String id,String year,String color,double lugCap,double passCap,double batCap){超级品牌,型号,engSz,id,year,color); luggageCap = lugCap; passengerCap = passCap; batteryCap = batCap; } public String toString(){ return super.toString()+“,”+ luggageCap +“,”+ passengerCap +“,”+ batteryCap; } } –