我有以下使用资产的抽象类Piece(资产不过是我设置的x,y,宽度,高度和其他一些特殊变量而已)作为超类。
public abstract class Piece extends Asset {
private final int blockWidth;
private final int blockHeight;
public Piece(int x, int y, int width, int height, BufferedImage image) {
super(x, y, width, height);
this.image = image;
pieceInit();
}
我还有其他几个扩展Piece的类。他们几乎都这样看:
public class IBlock extends Piece {
private final int blockWidth
private final int blockHeight;
public IBlock(int x, int y, int width, int height) {
super(x, y, width, height, IMAGE);
this.blockWidth = width / 4;
this.blockHeight = height;
}
我想在不更改任何构造函数的情况下,在其子类IBlock中计算Piece的blockWidth和blockHeight。我也想从IBlock中删除blockWidth和blockHeight。我有什么办法可以强制子类IBlock在其构造函数中(使用super)为其超类Piece设置最终变量?
希望这很有道理。 谢谢。