Java LibGDX类似乎不调用超类构造函数,这怎么可能呢?
我想扩展内置的libgdx类GLFrameBuffer,但不明白应该为构造函数编写什么 GLFrameBuffer已经有了另一个子类FrameBuffer,它使用了下面的构造函数,最后一个是混淆的主题Java LibGDX类似乎不调用超类构造函数,这怎么可能呢?,java,libgdx,Java,Libgdx,我想扩展内置的libgdx类GLFrameBuffer,但不明白应该为构造函数编写什么 GLFrameBuffer已经有了另一个子类FrameBuffer,它使用了下面的构造函数,最后一个是混淆的主题 FrameBuffer () {} protected FrameBuffer (GLFrameBufferBuilder<? extends GLFrameBuffer<Texture>> bufferBuilder) { super(bufferBuilder
FrameBuffer () {}
protected FrameBuffer (GLFrameBufferBuilder<? extends GLFrameBuffer<Texture>> bufferBuilder) {
super(bufferBuilder);
}
public FrameBuffer (Pixmap.Format format, int width, int height, boolean hasDepth) {
this(format, width, height, hasDepth, false);
}
public FrameBuffer (Pixmap.Format format, int width, int height, boolean hasDepth, boolean hasStencil) {
FrameBufferBuilder frameBufferBuilder = new FrameBufferBuilder(width, height);
frameBufferBuilder.addBasicColorTextureAttachment(format);
if (hasDepth) frameBufferBuilder.addBasicDepthRenderBuffer();
if (hasStencil) frameBufferBuilder.addBasicStencilRenderBuffer();
this.bufferBuilder = frameBufferBuilder;
build();
}
FrameBuffer(){}
受保护的帧缓冲区(GLFrameBufferBuilder您所谓的私有构造函数实际上不是私有的
它们是默认构造函数,它们的可见性级别是default
而不是private
。这是在不指定访问修饰符时应用的访问修饰符(因此称为default)
在java中,具有默认访问修饰符的任何内容都可以被同一包中的其他类访问
这些类都在同一个包中,com.badlogic.gdx.graphics.glutils
帧缓冲区()
constructor实际上是在调用它的无参数super
constructor。您使用的是哪个版本的libgdx?您是对的,它听起来不太正确。我猜当您查看源代码时,有些东西弄混了。目前,它看起来是这样的。但是,它的超类有一个可见的无参数构造函数。我e、 是否有任何方法可以扩展GLFrameBuffer类而不会破坏预期用途?如果您的子类不会使用默认构造函数实例化,您可以跳过它。否则,您必须根据您的子类及其功能决定要调用的超类构造函数以及要传递的值。