java嵌套接口和内部类
为什么java嵌套接口不能是非静态的?为什么内部类不能包含静态的非最终成员java嵌套接口和内部类,java,interface,static,final,inner-classes,Java,Interface,Static,Final,Inner Classes,为什么java嵌套接口不能是非静态的?为什么内部类不能包含静态的非最终成员 我在浏览Gosling时遇到了这些问题,但还没有找到答案。如果嵌套类是非静态的(即内部类),这意味着它的每个实例都绑定到外部类的一个实例。由于接口本身没有实例,将实现类绑定到外部对象似乎没有用处,因此,将其默认为静态似乎是合理的。我不确定为什么在内部类中不能有静态的非最终成员,但由于静态成员没有绑定到任何特定的对象实例,所以无论它是在内部类还是外部类中都没有区别 例如 您可以从内部类访问静态成员,就像它在内部类中一样。您
我在浏览Gosling时遇到了这些问题,但还没有找到答案。如果嵌套类是非静态的(即内部类),这意味着它的每个实例都绑定到外部类的一个实例。由于接口本身没有实例,将实现类绑定到外部对象似乎没有用处,因此,将其默认为静态似乎是合理的。我不确定为什么在内部类中不能有静态的非最终成员,但由于静态成员没有绑定到任何特定的对象实例,所以无论它是在内部类还是外部类中都没有区别 例如
您可以从内部类访问静态成员,就像它在内部类中一样。您通过了Gosling?他不介意吗?@Joachim Sauer“内部类是一个嵌套类,它不是显式或隐式声明为静态的。[…]成员接口(§8.5)总是隐式静态的,因此它们永远不会被认为是内部类。”引用,所以没有内部类这样的东西interface@Zoltan当前位置问题是为什么没有这样的东西?
class OuterClass {
private static int staticMember;
class InnerClass {
void incStatic() {
staticMember++;
}
}
}