2017-06-26 100 views
-1

我剛剛開始學習Java,我正在學習方法重寫。我在一個程序中嘗試在eclipse中運行時遇到錯誤。該程序如下:如何在方法重寫中使用main方法?

class Vehicle{ 
    void run(){System.out.println("Vehicle is running");} 
} 
class Bike extends Vehicle{ 

    public static void main(String args[]){ 
    Bike obj = new Bike(); 
    obj.run(); 
    } 
} 

錯誤是:

錯誤:在類車輛沒有找到主方法,請定義的主要方法爲: 公共靜態無效的主要(字串[] args) 或JavaFX應用程序類必須擴展javafx.application.Application

輸出應爲:車輛正在運行。

我試圖在「class Vehicle」之後鍵入語句「public static void main(String [] args)」,但得到其他錯誤。我嘗試了以下程序:

class Vehicle{ 
    public static void main(String[] args){ 
    void run(){System.out.println("Vehicle is running");} 
    } 
} 
class Bike extends Vehicle{ 

    public static void main(String args[]){ 
    Bike obj = new Bike(); 
    obj.run(); 
    } 
} 

然後,我得到以下錯誤:未解決的編譯問題:在線程「主要」 java.lang.Error的

異常令牌 語法錯誤「無效的」,語句錯誤,插入「;」(「完成方法標題名稱」 語法錯誤,插入「)」以完成方法聲明 語法錯誤,插入「;」 「完成MethodDeclaration 語法錯誤,插入「}」來完成ClassBody 這種方法需要一個機構,而不是令牌「}」分號 語法錯誤,刪除此令牌

at Vehicle.main(Vehicle.java:3) 

可有人請解釋這是在上述程序中插入'主要方法'的正確方法。

Thx提前。

+0

你是怎麼編譯和運行這段代碼的? –

+0

'Vehicle'的'main()'方法中有一個方法定義。這是一個錯字,還是你真的想要運行? –

+0

第一個示例編譯並正常工作。 – mishadoff

回答

1

這是錯誤的:

class Vehicle { 
    public static void main(String[] args){ 
void run(){System.out.println("Vehicle is running");} 
    } 
} 

你不能只是窩的方法定義中那樣的另一種方法......

,你可以這樣做:

public class Test { 

    public static void main(String args[]) { 
     Bike obj = new Bike(); 
     obj.run(); 
    } 

} 

class Vehicle { 
    void run() { 
     System.out.println("Vehicle is running"); 
    } 
} 

class Bike extends Vehicle { 

} 

,並確保您正在運行以啓動應用程序的類是測試類(具有靜態void main方法的類)

+0

我試過上面的程序,但是它仍然顯示相同的錯誤。它還顯示公共類型Test必須在其自己的文件中定義。如果我也刪除公共,它仍然顯示相同的錯誤。錯誤:「在Vehicle類中找不到主要方法,請將主要方法定義爲:public static void main(String [] args)或者JavaFX應用程序類必須擴展javafx.application.Application」 – Rahul

+0

如果每次定義類在自己的文件 –

0

你是正確的第一次:

class Vehicle { 
    void run() { 
     System.out.println("Vehicle is running"); 
    } 
} 
class Bike extends Vehicle { 

    public static void main(String[] args) { 
     Bike obj = new Bike(); 
     obj.run(); 
    } 
} 

這確實跑我剛剛測試過,這是我的輸出:

Vehicle is running 
Process finished with exit code 0 

我可以建議你嘗試之前做一個「乾淨&建」運行。

+0

我做了「清潔和建設」,但仍顯示相同的錯誤。 – Rahul