Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展类时,隐式超级构造函数是未定义的错误_Java_Processing - Fatal编程技术网

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"

我正在使用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", "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年前流行的一种技术。遗传有许多缺点。教授可能正在展示旧方法,并开始展示新方法,以便编程学生拥有广泛的知识集,并能做出更明智的决策。每种方法的区别是什么?区别是什么每种方式都有什么不同?