【发布时间】:2017-10-04 17:56:13
【问题描述】:
好的,所以我有一个带有以下构造函数的类“Card”。西装和等级存储为字段。
Card(String s, int r ){
suit = s;
rank = r;
}
我想用这个方法返回排名
public int getRank(){
return rank;
}
问题是我想从另一个名为 Hand 的类中调用此方法
如果我引用卡类Card c = new Card(); 我必须将参数输入到构造函数中。我不想这样做。
我试图让Hand 扩展Card,但是我得到了错误
没有默认构造函数
我已经寻找了解决方案,但我无法让它发挥作用。
我的问题是:如何解决这个问题?
编辑:手类
public class Hand extends Card {
Deck d = new Deck();
Hand h = new Hand();
ArrayList<Card> hand = new ArrayList<>();
public void giveMeCard(){
hand.add(d.dealCard());
}
public ArrayList returnHand(){
return hand;
}
public int rank(){
}
}
【问题讨论】:
-
请发布您的
Hand课程。 -
如果要调用不带任何参数的 Card 构造函数,那么 Card 类必须有一个不带任何参数的构造函数。但是没有花色或等级的牌有什么用呢?继承是完全无关的。手不是卡片,因此手不应该扩展卡片。这没有任何意义。
-
是的,请发手课
-
当你打电话给
Card c = new Card()时,你想让c持有什么卡片? -
你到底想在这里做什么?我认为你缺乏一些基本的 java/编程知识,所以你最好的主意可能是做一些 OO 教程,然后再提出一个更具体的问题。
标签: java inheritance constructor extends