試圖在Java中做一些事情,但在構造函數時遇到問題。 我的代碼:繼承構造函數java:調用super()必須是第一條語句
件構造
public Piece(Chessboard chessboard, Position position, Color color, String name, char symbol) {
this.board = chessboard;
this.position = position;
this.color = color;
this.name = name;
this.symbol = symbol;
}
主教構造函數(從片擴展):
public Bishop(Chessboard board, Position position, Color color) {
char symbole;
if(color.equals(Color.BLACK))
symbole = Symbol.BLACK_BISHOP.getCode();
else
symbole = Symbol.WHITE_BISHOP.getCode();
super(board, position, color, "Bishop", symbole);
}
當我試圖像這樣做,我就超得到一個錯誤調用:「super()必須是構造函數體中的第一條語句」。
我看到的唯一修復方法就是用一個表達式替換super()調用中的'symbole',這個表達式會在color
的函數中得到正確的符號,但我無法做到這一點?
我的Symbol類只是一個枚舉字段code
,它代表了棋子的代碼。每一件都是說喜歡COLOR_PIECE
例如:BLACK_BISHOP
感謝您的幫助
只要一秒鐘之前我,我的朋友:P –
哇非常感謝,這是工作,我從來沒有使用三元運算符,想,如果條件可以取代它所有的時間:/ – Xneyte