静态关键字和抽象关键字可以在java中一起使用吗?
据我所知,静态和最终组合可以一起使用,但java中不允许静态和抽象或最终和抽象组合。但我看到的一些代码如下所示静态关键字和抽象关键字可以在java中一起使用吗?,java,inner-classes,Java,Inner Classes,据我所知,静态和最终组合可以一起使用,但java中不允许静态和抽象或最终和抽象组合。但我看到的一些代码如下所示 public class Enclosing { private static int x = 1; public static abstract class StaticNested { public abstract void run(); } } 有人能解释一下这个场景的概念和实际用途吗 静态和抽象可以一起用于嵌套类,例如 B是
public class Enclosing {
private static int x = 1;
public static abstract class StaticNested {
public abstract void run();
}
}
有人能解释一下这个场景的概念和实际用途吗
静态
和抽象
可以一起用于嵌套类,例如
B
是一个静态
嵌套类,它需要具体的子类来实现someMethod()
但不能同时用于方法,例如
当然,abstract
和final
不能同时使用-这样的组合是毫无意义的
静态抽象类的使用
静态抽象类
的合适用途是仅用于您的类使用的类似节点的对象,例如表示映射中条目的类(例如java.util.map.entry
,它是接口,但可能是静态抽象类),或链接列表
节点的类,但是实现留给封闭类的实现,这些类本身也通过扩展嵌套类来使用和提供嵌套类的实现。静态
和抽象
可以一起用于嵌套类,例如
B
是一个静态
嵌套类,它需要具体的子类来实现someMethod()
但不能同时用于方法,例如
当然,abstract
和final
不能同时使用-这样的组合是毫无意义的
静态抽象类的使用
静态抽象类
的合适用途是仅用于您的类使用的类似节点的对象,例如表示映射中条目的类(例如java.util.map.entry
,它是接口,但可能是静态抽象类),或链接列表
节点的类,但是实现留给封闭类的实现,它们自己也通过扩展嵌套类来使用和提供嵌套类的实现。您明白吗?你明白吗?如果你同时理解了这两件事,那么你就理解了抽象静态嵌套类的概念。简短回答:否。不再回答:否,因为它不会有用。@Bohemian静态嵌套类当然可以是抽象的,并且具有与顶级抽象类相同的有效用途。也就是说,静态方法不能是抽象的,但OP使用了一个类作为示例,而不是一个方法。@Slaw-Hmmm。确实如此。你明白吗?你明白吗?如果你同时理解了这两件事,那么你就理解了抽象静态嵌套类的概念。简短回答:否。不再回答:否,因为它不会有用。@Bohemian静态嵌套类当然可以是抽象的,并且具有与顶级抽象类相同的有效用途。也就是说,静态方法不能是抽象的,但OP使用了一个类作为示例,而不是一个方法。@Slaw-Hmmm。确实如此。
class A {
static abstract class B {
abstract void someMethod();
}
}
static abstract void someMethod(); // compile error