我正在構建一個簡短的基本遊戲,並且已經給出了一些代碼來查看。遊戲中的所有角色都是遊戲對象,有些是可移動的,有些則不是。可移動的有一個位置和方向。簡介:一些遊戲對象移動,一些不移動
我得到了一個MoveableObject類(如下)。可移動的GameObjects在它們自己的構造函數中實例化這個類。我不能保證這段代碼是正確的,所以我試圖理解它背後的理論。
public class MoveableObject {
int speed;
String direction;
public MoveableObject(){
speed = 0;
direction = "unknown";
}
public MoveableObject(int iSpeed, String sDirection){
speed = iSpeed;
direction = sDirection;
}
和所有可移動的字符在構造函數中創建此類的一個實例。例如,來自吸血鬼班。
public class Vampire
public Vampire(){
MoveableObject thisObject = new MoveableObject(30, "South-East");
}
}
據我所知,這被稱爲聚合。我認爲這是用於HAS-A關係,而不是IS-A。由於字符IS-A可移動對象,我應該不使用繼承或接口嗎?我也不明白爲什麼你需要創建一個MoveableObject實例,如果每個字符都是或者不是可移動的,當然,你應該給它們移動或不移動的能力(通過繼承或接口),然後實例化人物?
在此先感謝。
吸血鬼類(或其他可移動對象)是否有可能計劃在稍後繼承其他類? (我想這是來自某種課堂作業,對吧?) – Fildor
是的,這是一個班級作業。吸血鬼將從繼承自GameObject的HeadVampire繼承。頭部吸血鬼可以出現和消失,所以它們不是可移動對象,因爲它們沒有速度或方向,只是一個新的位置。 – Killian
你走了。 Java不支持類的多重繼承,這就是爲什麼。 I.e .:你不能「擴展」兩個不同的類。所以如果吸血鬼會擴展HeadVampire,那麼它就無法擴展其他任何東西。 – Fildor