普通内部类里面为什么不能有static字段

“因为内部类特殊,他被定向为是和成员变量,方法一样的外部类成员
他必须跟外部类实例相关联才能初始化,这是他的特点之一,为了这个其他东西都要让路
而静态成员是不需要实例就初始化的
如果一个非静态内部类有了静态成员,静态成员不依托于任何内部类实例,那结果也就是此内部类不需要外部类实例就初始化了变量,严重侵害了内部类的定向”


内部类(Inner Class,也就是在一个类的内部定义的类,却本身不是static的)的意思是这个类“属于”外层的类的一个实例,但static的意思就是这个字段、方法“不属于任何实例”,意思互相冲突,所以干脆语言的层次禁止这样做。

你可能感兴趣的:(普通内部类里面为什么不能有static字段)