2015-07-03 115 views
-1

我在這裏有兩個文件,在StaticSuper類(文件2)中,StaticSuper方法似乎有一個命名clonflict。爲什麼是這樣?在類文件中命名衝突

public class StaticTests extends StaticSuper { 
     static int rand; 

     static { 
      rand = (int) (Math.random() * 6); 
      System.out.println("static block " + rand); 
     } 

     StaticTests() { 
      System.out.println("constructor"); 
     } 

     public static void main(String [] args) { 
      System.out.println("in main"); 
      StaticTests st = new StaticTests(); 
     } 

    } 

    class StaticSuper { 

     static { 
      System.out.println("Super static block"); 
     } 

    //naming conflict here 
     StaticSuper{ 
        System.out.println("super constructor"); 
       } 

      } 
+3

這是否意味着一個構造函數? –

+2

@SotiriosDelimanolis通過System.out.println(「超級構造函數」)判斷;'我認爲我們可以安全地假設:是的。它看起來像簡單的印刷問題(在構造函數聲明中缺少'()')。 – Pshemo

+1

您忘記了構造函數聲明中的括號。 –

回答

0

這是因爲你正在構造錯誤的類。類構造函數應該如下

class StaticSuper { 
    public StaticSuper(){ 
     System.out.println("super constructor"); 
    } 
} 

public是可選的,但方括號應始終存在。瞭解一點點here