为什么内部类不能有static成员?
class father{
class child{
static int s_InstanceCount;
}
}
假如我用父类的对象创建若干个子类的实例,每创建一个子类的实例让s_InstanceCount加一,来计算有了多少个子类实例。为什么不行呢,java不让在子类里面有static方法和成员,这个限定是为了什么?
------解决方案--------------------这个代码看起来像内部类啊
子类不是应该用extends father()的吗
------解决方案--------------------+1+1+1
------解决方案--------------------内部类是非静态的,除了要依靠外部类实例,还要依赖内部类实例,静态常量是不要类实例的,在编译时就分配好了内存,且final类型可以离开实例存活一段时间。所以非静态内部类只能有静态的final型常量。
------解决方案--------------------把s_InstanceCount变量定义在“父类”中。内部类能访问外部类的变量。
------解决方案--------------------
------解决方案--------------------改成静态内部类
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------