我正在使用Swing为我的高中编程类创建一个令人难以置信的原始二十一点游戏,因此,我所有的资源类都扩展了JPanel。我创建了以下资源类:是否有可能让一个类拥有多个超类?
- DealerBox
- ClubsBox
- SpadesBox
- HeartsBox
我的问题是,我想创建一个公共整数极少数这样的,我有
public int DealerTotal, ClubsTotal, SpadesTotal, HeartsTotal;
我想这样做,我可以跟踪每个人的价值观,并确定赢家和输家。我有一个灯泡熄灭,并认为使Dealerbox成为Clubs,Spades和Hearts的超类是解决所有问题的方法,因为我可以在超类中获得简单的代码,获得上述整数的值并执行所需的所有检查。
所以我写了这为我的一个子类:
public class ClubsBox extends JPanel, DealerBox implements Runnable
{
//fun code
}
现在的问题是,我不断收到错误。我认为它与将ClubsBox列为JPanel和DealerBox的子类有关。所以我stackoverflowed我的问题,并找到一个答案,说一个不能有一个类有2个超类。对类似问题的另一个答案是,一个可以有一个类有两个超类。
现在我们来回答主要问题:是否有可能拥有一个拥有两个超类的类?如果是这样,我该如何编码?如果没有,是否有解决方法?
编辑:2014年4月21日,后原帖
我有一个新的问题44分。我使用了大家所建议的方法,即让DealerBox扩展JPanel,然后让其他所有扩展DealerBox。我的GUI从这个去:
这样:
底部一个显然是令人难以置信搞砸了。不知何故,来自其他地区的标签最终被复制,而东西混杂在一起。如果你需要代码让我知道,但我需要认真的帮助解决这个问题。
请记住继承树是这个样子:
你可以有'A扩展B',然后'B扩展C',但不是你写它的方式。 – AntonH
Java仅支持单个类继承,但您可以有零个或多个实现的接口。请参见[Oracle Java继承教程](http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html) –
由于使用类层次结构可能会发生的复杂性,因此Java不包含多重继承使用多重继承(请参阅[为什么在Java中没有多重继承](http://stackoverflow.com/questions/2515477/why-there-is-no-multiple-inheritance-in-java-but-implementing-multiple- interfac))。我也想指出,继承可以被过度使用,并且通常组合优于继承。 –