接口和抽象的特别问题!!!
(访问修饰符都是 public )
我定义了一个接口: interface InA
一个抽象类:abstract AbsB
接口和抽象类中都有一个静态变量 static int i
我没有继承这个抽象类 ,也没有实现这个接口
我写个一个类。用 InA.i 和 AbsB.i (没报错,运行成功了)
通过 (类名.静态变量) 这中方法居然对了。(但事实上我用的不是类名啊,而是抽象类名和接口名??)
我就不明白了,为什么能这样调用抽象类和接口的静态变量。??
能不能给我讲一下原理。
------解决方案--------------------你是定义了static int i,静态变量, 所以在编译的时候,系统就为这个变量分配内存地址,空间,你当然可以直接调用。 如果不是静态的话,就得对这个类进行实例化后,才会对变量分配内存, 当然抽象类是不允许实例化的