我試圖制作一個國際象棋游戲,我將為每個棋子設定一個類,但它們都將擴展類 Piece。Piece 類有一個 maxMovementDistance 屬性,但我想在子類(國王、王后、典當等)中設定該屬性,它也應該是最終的。
最好的方法是什么?
或者我應該改變我的實作?
public class Piece {
int maxMovementDistance;
private boolean isWhite = false;
private boolean isKilled = false;
private boolean canMoveBack = true;
private int positionX;
private int positionY;
}
public class King extends Piece {
}
uj5u.com熱心網友回復:
這通常通過在超類中創建一個建構式來完成,該建構式通過傳遞給它的引數設定值,然后從子類呼叫該建構式。
例如
public class Piece {
private final int maxMovementDistance;
public Piece(int maxMovementDistance) {
this.maxMovementDistance = maxMovementDistance;
}
public int getMaxMovementDistance() {
return this.maxMovementDistance;
}
}
public class King extends Piece {
public King() {
super(1); // will call super constructor with 1 as argument pased
}
}
uj5u.com熱心網友回復:
使基類的成員受到保護,這樣只有后代才能訪問和修改這些值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/510521.html
標籤:爪哇遗产棋
