У меня есть следующий абстрактный класс 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?
Надеюсь, это имеет какой-то смысл.
Спасибо.