Java 扩展类时,隐式超级构造函数是未定义的错误
我正在使用Java。我有两节课Java 扩展类时,隐式超级构造函数是未定义的错误,java,processing,Java,Processing,我正在使用Java。我有两节课 class Card class Deck extends Card 我得到一个构造函数错误 我必须为大学制作一个21点游戏,甲板课必须延长 我能做些什么来解决这个问题 class Card { int rank, suit; String[] suits = { "hearts", "spades", "diamonds", "clubs" }; String[] ranks = { "Ace", "2", "3", "4", "5"
class Card
class Deck extends Card
我得到一个构造函数错误
我必须为大学制作一个21点游戏,甲板课必须延长
我能做些什么来解决这个问题
class Card
{
int rank, suit;
String[] suits = { "hearts", "spades", "diamonds", "clubs" };
String[] ranks = { "Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King" };
Card(int suit, int rank)
{
this.rank=rank;
this.suit=suit;
}
String toString()
{
return ranks[rank] + " of " + suits[suit];
}
int getRank() {
return rank;
}
int getSuit() {
return suit;
}
}
class Deck extends Card{
ArrayList <Card> cards;
int numberdeck;
Deck()
{
cards = new ArrayList<Card>();
for (int a=0; a<=3; a++)
{
for (int b=0; b<=12; b++)
{
cards.add( new Card(a,b) );
}
}
}
Card drawFromDeck()
{
Random generator = new Random();
int index= generator.nextInt( cards.size() );
return cards.remove(index);
}
int getTotalCards()
{
return cards.size();
}
}
类卡
{
国际军衔、西装;
字符串[]套装={“红心”、“黑桃”、“钻石”、“梅花”};
字符串[]排名={“王牌”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“杰克”、“女王”、“国王”};
卡片(国际套装,国际等级)
{
这个.秩=秩;
这套衣服;
}
字符串toString()
{
返回等级[等级]+“+诉讼[诉讼]”;
}
int getRank(){
返回等级;
}
int getSuit(){
反诉;
}
}
类甲板扩展卡{
ArrayList卡片;
int numberdeck;
甲板()
{
cards=新的ArrayList();
对于(int a=0;a子类中的构造函数应该调用超类中相应的构造函数,但是在代码中找不到这样的构造函数
要么添加一个不接受超类参数的构造函数,要么让子类中的构造函数调用超类中的构造函数
可以在子类的构造函数体的开头使用super(0,0);
调用超类的构造函数。子类中的构造函数应该调用超类中相应的构造函数,但是,在代码中找不到这样的构造函数
要么添加一个不接受超类参数的构造函数,要么让子类中的构造函数调用超类中的构造函数
您可以使用super(0,0)调用超类的构造函数
在子类的构造函数主体的开头。组
确实不应该扩展卡
。子分类编码is-a关系。狮子是动物,所以狮子扩展了动物
。你可以看出子分类是不合适的,因为getRank()和getSuit()方法在一整副牌上毫无意义
一副牌不是一张牌;一副牌包含其他牌。包含关系已经由数组列表卡数组表示。牌组真的不应该扩展卡。子分类编码is-A关系。狮子是动物,所以狮子扩展动物。你可以看出子类别因为getRank()和getSuit()方法在一整副牌上都没有意义,所以不合适
卡片组不是卡片;卡片组包含其他卡片。包含关系已由ArrayList cards
数组表示。这是我们必须做的。我们有2个选项。选项1=类卡片组实现CardInterface或选项2:类卡片组扩展Card@baris22我无意冒犯你的教授,但两个选项ons是糟糕的面向对象设计。毫无疑问,至少在下一次家庭作业中,你是否曾选择过接口方法。继承是15年前流行的一种技术。继承有许多缺点。教授可能正在展示旧方法,并开始展示新方法,以便编程学生有广泛的了解这是我们必须做的。我们有两个选项。选项1=类组实现CardInterface或选项2:类组扩展Card@baris22好吧,我无意冒犯你的教授,但这两种选择都是糟糕的面向对象设计。毫无疑问,你是否曾经选择过界面方法,至少对于你的下一个家ASI来说是这样遗传是15年前流行的一种技术。遗传有许多缺点。教授可能正在展示旧方法,并开始展示新方法,以便编程学生拥有广泛的知识集,并能做出更明智的决策。每种方法的区别是什么?区别是什么每种方式都有什么不同?