Установка конечных переменных в суперклассе из подкласса - PullRequest
0 голосов
/ 29 марта 2019

У меня есть следующий абстрактный класс Piece, который использует Asset (Asset - не более, чем x, y, width, height и некоторые другие специальные переменные, которые я установил) в качестве суперкласса.

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;
    }

Я хочу вычислить blockWidth и blockHeight фигуры в ее подклассе IBlock без изменения каких-либо конструкторов. Я также хочу удалить blockWidth и blockHeight из IBlock. Есть ли способ заставить подкласс IBlock установить конечные переменные в его конструкторе (используя super) для его суперкласса Piece?

Надеюсь, это имеет какой-то смысл. Спасибо.

...