我将如何存储不同类型的对象?

时间:2018-10-03 16:59:34

标签: java enums

我正在用Java创建纸牌游戏。每个纸牌对象可以有四种不同的花色,每种花色都会改变纸牌对象与游戏中其他对象的作用方式。否则,卡的行为相同。我可以通过为每个花色使用一个布尔变量为每个花色对象分配一个花色,但是这样做听起来像是一个混乱的解决方案,可能会出错。

使用枚举会更好吗?

1 个答案:

答案 0 :(得分:0)

您最好的选择是创建一个Abstract基类,该基类具有一个抽象方法,每个方法都继承并实现。

abstract class AbstractSuit {

  public abstract int modify();
}

然后每套西装都将延长AbstractSuit

class Hearts extends AbstractSuit {

  @Override
  public int modify() {
    return 1 + 1;
  }
}

class Spades extends AbstractSuit {

  @Override
  public int modify() {
    return 2 + 2;
  }
}

然后,您可以将每个对象作为AbstractSuits存储在所需的任何集合中,并可以调用modify()

List<AbstractSuit> suitList = new ArrayList<>();
suitList.add(new Hearts());
suitList.add(new Spades());

for(AbstractSuit suit : suitList) {
  System.out.println(suit.modify());
}

输出应为

2
4