2012-11-10 68 views
0

是否可以從java中的main方法中的子類訪問屬性? 例如,在擴展I類具有屬性高度和方法:在java中獲取子屬性

public String getName() 
{ 
return name; 
} 

但是我不能從主方法訪問的名稱。 謝謝。

+0

請顯示更多代碼你如何試圖訪問它。如果你只嘗試'String s = getName();' - 這是因爲'main()'是靜態的,你需要一個對象實例來調用getName()'。你也應該提供你遇到的確切的錯誤。 – amit

+0

我不明白你的問題,你能詳細說明一下嗎? – Frank

回答

0

是否是私人會員?您只能在Main中訪問任何類的公共成員(不管它是基類還是子類)。

如果您沒有訪問成員,但訪問方法GetName本身,然後
的getName()如果名字沒有被定義爲在基類中的私人應該工作。如果是其他內容 - 受保護的,公開的或默認的包裝聲明,那麼它應該工作。

1

你將不得不建立內部Child類的實例以獲得其name字段作爲main方法是static

public class Parent { 

    class Child { 
     String name; 

     public String getName() { 
      return name; 
     } 
    } 

    public static void main(String[] args) { 
     String name = new Parent().new Child().getName(); 
    } 
} 

getName()本身不能被聲明爲static爲靜態方法只能是在靜態或頂級類型中聲明。