2017-03-31 29 views
1

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; } } –

回答

1

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

側面說明 - 確保您傳遞的參數權數每類的構造函數,並確保類型爲每個參數的匹配。