我们可以在java中创建公共静态抽象类吗?

时间:2012-09-13 09:27:26

标签: java

我在谷歌搜索的东西,我得到了像

这样的代码
public static abstract class LocationResult{
    public abstract void gotLocation(Location location);
}

这是一个嵌套类,但想知道它是如何可以访问的?

2 个答案:

答案 0 :(得分:19)

它必须是嵌套类:上的static关键字(不是其中的方法)仅对嵌套类使用(并且语法上有效)。这样的静态成员类(在Nutshell的常用命名法中使用Java)不包含对封闭类的引用,因此只能访问其中的静态字段和方法(与非静态字段和方法不同;请参阅任何摘要Java中的嵌套类(也称为内部类)。

可以像这样访问:

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

EnclosingClass.LocationResult locationResult = ...

答案 1 :(得分:3)

只有嵌套类可以是静态的。通过这样做,您可以使用嵌套类,而无需外部类的实例。

因此,您可以使用extends Mainclass.LocationResult创建一个扩展它的类,并将其与Mainclass.LocationResult instance = ...一起使用