在子类中的超类中设置最终变量

时间:2019-03-28 21:19:21

标签: inheritance final

我有以下使用资产的抽象类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设置最终变量?

希望这很有道理。 谢谢。

0 个答案:

没有答案