【发布时间】:2013-03-28 02:36:02
【问题描述】:
如果我像这样创建一个基础对象:
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();
}
}
会在引导类中以这种方式声明 bufferLibrary:
RIBaseObject.sSystemRegistry.bufferLibrary = new BufferLibrary();
从任何扩展 BaseObject 的类中,我可以访问相同的 bufferLibrary 对象吗?还是会有所不同?
【问题讨论】:
-
这看起来是一个糟糕的圆形设计。一个父类持有其子类型的静态字段?不,父母不应该依赖他们的孩子。您需要重新考虑您的设计。
-
这是从复制岛拍摄的。我只是想了解那家伙是如何把他的东西放在一起的。但是,糟糕的设计,我会记住的。
标签: java inheritance extends