2012-10-11 30 views
-3

嗨我只是想盡快再保險,這是正確完成:錯誤在此Java代碼段,只是檢查,看看它正確

所以你必須找到在代碼段錯誤 -

查找錯誤每個以下代碼段:

//Superclass 
public class Vehicle{ 
(member declarations…..) 
} 
//subclass 
Public class car expands Vehicle{ 
(Member declarations….) 
} 

所以心不是錯誤的事實,它的膨脹和應擴展,而不是正確的?

3. //superclass 
public class Vehicle{ 
    private double cost; 
    public Vehicle(double c){ 
     cost = c; 
} 
(Other methods……) 
} 
//subclass 
public class Car extends Vehicle{ 
    private int passengers; 
    public Car(int p){ 
    passengers = c; 
} 
(Other methods…..) 
} 

林不知道這個錯誤是什麼,我得到這個錯誤任何人都有線索?

+6

1.將代碼複製到您最喜歡的IDE中2.嘗試編譯3.閱讀錯誤消息。 – assylias

+0

*「在以下每個代碼段中查找錯誤:」*按摩我的腳。 –

+1

這看起來像是從書本或測試中取出的練習,特別是因爲「3」。在第二個代碼提取的開始處... – Gamb

回答

3

java中沒有「擴展」關鍵字。您始終必須使用extends來進行類繼承。

第二個示例中的類Car定義了一個新的構造函數。

public Car(double c, int p) { 
    super(c); // call the super constructor! 
    passengers = p; // your normal constructor code 
} 
+0

您對第二個問題的解釋不能確定實際問題。它與'Car'定義一個「新」構造函數無關。如果它*沒有定義一個新的構造函數,它仍然會有這個問題。問題是沒有可以隱式調用的父級無參數構造函數,這意味着你必須明確地調用它。 –

+0

如果我的回答有點混亂,我很抱歉,因爲那正是我想說的。隨意編輯它:) –

0

無論是在Vehicle添加額外的default構造函數:

public Vehicle(){ 
    this.cost = 0.0; 
    } 

或者添加型Car雙額外PARAM子類必須數據轉發給父類的構造類似這樣的新構造構造函數和呼叫超級建議@主要 -

也可以更新Car構造函數爲:

public Car(int p) { 
    super(0.0); 
    passengers = p; 
} 
相關問題