2012-09-13 79 views
13

我在谷歌搜索的東西,我得到了像我們可以在java中創建公共靜態抽象類嗎?

public static abstract class LocationResult{ 
    public abstract void gotLocation(Location location); 
} 

這是一個嵌套類中的代碼,但不知道它怎麼可能訪問?

+0

你可以在這裏查看http://stackoverflow.com/questions/4579305/can-we-instantiate-abstract-class –

回答

16

它必須是一個嵌套類:(不包括其中的方法)的static關鍵字僅用於嵌套類(在語法上有效)。這樣的靜態成員類(在一個Nutshell的通用命名中使用Java)不包含對封閉類的引用,因此只能訪問其中的靜態字段和方法(與非靜態類型不同;請參閱Java中嵌套類的任何摘要(也稱爲內部類)

它可以是這樣的訪問:。

public class EnclosingClass { 
    public static abstract class LocationResult{ 
    public abstract void gotLocation(Location location); 
    } 
} 

EnclosingClass.LocationResult locationResult = ... 
+2

或者它可以通過其他嵌套類擴展。 – assylias

+0

作爲一個新手我知道我們不能創建一個抽象類的實例。有沒有任何材料的文檔來學習這個? –

+0

@YasirKhan你可以以一個匿名類的形式。 – assylias

3

只有嵌套類可以是靜態通過這樣做,你可以使用嵌套類,而無需外部類的一個實例

所以你可以創建一個類,使用extends Mainclass.LocationResult並使用它Mainclass.LocationResult instance = ...

相關問題