我有一个超类和几个扩展超类的子类。 当我在子类中扩展抽象方法时,我使用的变量在其他子类中看起来完全相同。
通常,我只是将它作为一个全局变量,这样我就不必复制代码,但我不知道如何在我的情况下这样做,因为我在变量中使用参数。
例如,
public abstract boolean canMove(Piece[][] board, int fromX, int fromY, int toX, int toY);
//This is the abstract method in the super class
@Override
public boolean canMove(Piece[][] board, int startX, int startY, int endX, int endY) {
boolean onBound = (0 <= endX && endX < Board.NUM_OF_ROWS) && (0 <= endY && endY < Board.NUM_OF_COLS);
.....
}
这是子类中实现的抽象方法。如果我把它放在外面,它将无法工作,因为它使用参数。有没有一种好方法可以防止在共享公共超类的其他子类中重复此行?
答案 0 :(得分:1)
在超类中写这个
public boolean canMove(Piece[][] board, int startX, int startY, int
endX, int endY) {
boolean onBound = (0 <= endX && endX < Board.NUM_OF_ROWS) && (0 <= endY && endY < Board.NUM_OF_COLS);
anotherMethod(onBound, any_other_parameters);
}
//在子类中重写
@Override
anotherMethod(onBound , parma){
//your code
}