如果我像这样创建一个基础对象:
public abstract class RIBaseObject{
static ObjectRegistry sSystemRegistry = new ObjectRegistry();
public RIBaseObject() {
}
public abstract void reset();
}
并在我创建的每个(大多数)类中扩展此基础对象,考虑到ObjectRegistry包含如下参数:
public class ObjectRegistry extends RIBaseObject {
public BufferLibrary bufferLibrary;
public CameraSystem cameraSystem;
public ObjectRegistry() {
super();
}
}
在bootstrap类中以这种方式声明bufferLibrary:
RIBaseObject.sSystemRegistry.bufferLibrary = new BufferLibrary();
从扩展BaseObject的任何类中获取它,我会访问相同的bufferLibrary对象吗?或者会有所不同?
答案 0 :(得分:0)
所有子类都将访问基类中的相同静态变量。 静态变量每个类加载一次,它们不依赖于实例化。
因此所有子类将共享相同的静态变量,即您的库在基类中定义为静态。
静态变量不是继承的,但可以被称为变量隐藏的子类中的类似定义的变量隐藏。
是的,您将从所有子类访问相同的bufferLibrary。