Java 如果Boat类需要继承物品类,也就是说,Boat类即是交通工具,也是属于物品的一种,代码该做怎样的调整:抽象类: MaterialObject:抽象物品类 AbstracTransport:抽象交通工具类 (place:所在地;capacity:容量;goodes:货物列表) moveTo(String destination)移动到目的地 AbstractRule:抽象规则类 judge()根据规则判断结果 AbstractGame:抽象游戏类 (gameOverRule:游戏结束规则; gameSuccessRule:游戏输赢规则; gameData:游戏数据) play()执行游戏 Animal:动物类 addedToRecipe(MaterialObject m)添加某物品进该动物的食谱 isFood(MaterialObject m)判断某物品是否在它的食谱中 canBeEat(MaterialObject m)判断某物品能不能被吃到 eat(MaterialObject m)吃某样食物 Person:人类 Plante:植物类 Boat:船类 crossRiver()过河 crossRiver(Person person)将人运载过河 crossRiver(Person person,MaterialObject m)将人和某样物品运载过河 board(MaterialObject m)物品m上船 crossRiver(MaterialObject m)物品m下船 CrossRiverRule:判断是否都渡过河的规则类 hasCross(MaterialObject m)物品m是否渡过了河 ObjectExistRule:判断物品是否都还存在的规则类 GameOverRule:判断游戏是否结束的规则类 GameSuccessRule:判断游戏输赢的规则类 GameUI:游戏界面类
时间: 2023-06-23 21:08:24 浏览: 77
首先,Boat类需要继承物品类,因此需要在Boat类的声明中加入`extends MaterialObject`。此外,Boat类还需要实现抽象交通工具类AbstracTransport中的方法,包括place、capacity、goodes、moveTo等。具体的代码实现如下:
```
public class Boat extends MaterialObject implements AbstracTransport {
private String place;
private int capacity;
private List<MaterialObject> goods;
@Override
public String getPlace() {
return place;
}
@Override
public void setPlace(String place) {
this.place = place;
}
@Override
public int getCapacity() {
return capacity;
}
@Override
public void setCapacity(int capacity) {
this.capacity = capacity;
}
@Override
public List<MaterialObject> getGoods() {
return goods;
}
@Override
public void setGoods(List<MaterialObject> goods) {
this.goods = goods;
}
@Override
public void moveTo(String destination) {
// move to destination
}
}
```
此外,还需要实现抽象规则类AbstractRule、抽象游戏类AbstractGame、动物类Animal、人类Person、植物类Plante等相关类的方法。具体实现需要根据具体需求进行编写。
阅读全文