2013-03-18 116 views
-3

我試圖運行此代碼(在3個不同的類 - A,B和C),它沒有運行。我不知道爲什麼不。任何人都可以幫忙嗎?如何讓這段代碼運行?

public class A {  

    private int number; 
    protected String name; 
    public double price; 

    public A () { 
     System.out.println ("A() called"); } 

    private void foo1() { 
     System.out.println("A version of foo1() called"); } 

    protected int foo2(){ 
     System.out.println("A version of foo2() called"); 
     return number; } 

    public String foo3(){ 
     System.out.println("A version of foo3() called"); 
     return "Hi";    
    } 
} 

public class B extends A { 

    private char service; 

    public B () { 
     super(); 

     System.out.println("B() called"); } 

    public void foo1 () { 
     System.out.println("B version of foo1() called"); } 

    protected int foo2 (){ 
     int n = super.foo2(); 
     System.out.println("B version of foo2() called"); 
     return (n+5); } 

    public String foo3 () { 
     String temp = super.foo3 (); 
     System.out.println("B version of foo3()"); 
     return (temp + " foo3"); } } 

public class C extends B { 

    public C(){ 
     super(); 
     System.out.println("C() called"); } 

    public void foo1 () { 
     System.out.println("C version of foo1() called"); 
    } 
} 
+0

什麼,當你嘗試運行它發生?什麼是你看到的確切的異常或錯誤? – 2013-03-18 00:37:07

+0

顯示你的錯誤! – Kickaha 2013-03-18 00:38:11

+2

什麼,確切地說,你的意思是「它沒有運行」?它是否編譯?你期望它做什麼,它究竟做了什麼?程序是否啓動,但做錯了事,或者你不能啓動它? – 2013-03-18 00:38:17

回答

2

你沒有main方法來指定程序的開始。你需要在你的一個類來創建一個主要方法有以下特徵:

+0

是的我試過了,每次插入它(不管什麼類)它都會給我帶來錯誤。 – Slink 2013-03-18 01:47:53

2

類似的東西應該讓你的程序運行

public static void main(String[] args) 
{ 
    A a = new A(); 
    a.foo2(); 
    a.foo3(); 

    //same for B and C 
} 
+0

這工作,非常感謝你! – Slink 2013-03-18 01:58:55

+0

這將永遠不會編譯。由於類A中的方法foo1()是私有方法。 – Jayamohan 2013-03-18 02:06:22

+1

如果有效,請將答案投給! – 2013-03-18 02:24:53

0

再添加一個類在同一個包。例如,我有一個創建一個名爲類應用象下面這樣:

public class Application{ 
     public static void main(String []args){ 
       A a = new A(); 
       a.foo3(); 
       B b = new B(); 
       b.foo1(); 
       C c = new C(); 
       c.foo1(); 
     } 
    } 

然後,請再次嘗試運行它...

+0

這將永遠不會編譯。由於類A中的方法foo1()是私有方法。 – Jayamohan 2013-03-18 02:04:07

+0

哦..謝謝..我已經更新了它。 – Ericton 2013-03-18 02:09:47