我正在用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的子类有关。因此,我在stackoverflow上查找了我的问题,并找到了一个答案,它说明不能有一个具有2个超类的类。对于类似问题的另一个答案表明,可以有一个具有两个超类的类。
现在我们来到主要问题:是否可能有一个具有两个超类的类?如果是这样,我该如何编码它?如果不行,有没有绕过限制的方法?
编辑:2014年4月21日,原帖发表后44分钟
我有一个新问题。我使用了所有人建议的方法,即使DealerBox扩展JPanel然后使其他所有内容扩展DealerBox。我的GUI由此变成了这个: 到这个:
底部的显然非常混乱。某种程度上,其他区域的标签被复制,东西被混合在一起。如果需要代码,请让我知道,但我需要严重的帮助来解决这个问题。
请记住,继承树看起来像这样:
A extends B
,然后B extends C
,但不能按照你所写的方式。 - AntonH