创建与Java子子

问题描述:

Directed UML创建与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 –

+2

1)错误是什么意思? 2)你可以显示你的HybridCar类的代码吗? 3)“我知道在java中我不能双重继承”,如果HybridCar只继承Car那么这不是问题,那么双重继承是从哪里来的? –

+0

你会得到什么样的错误?也许你只是忘了放大括号? – vhula

+0

公共类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; } } –

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); 

侧面说明 - 确保您传递的参数权数每类的构造函数,并确保类型为每个参数的匹配。