我有一堂课叫做“卡片”
public class Card
{
private int cardNumber;
private String cardName;
public Card(int cardNumber, String cardName)
{
this.cardNumber = cardNumber;
this.cardName = cardName;
}
public String toString()
{
return cardName;
}
public int getNumber()
{
return cardNumber;
}
}
我正在尝试创建Card类的子类,称为“ Ace”,但是每当尝试编译Ace时,我都会不断遇到以下错误: Ace.java:5:错误:类Card中的构造函数Card无法应用于给定类型;
这就是我要获得的Ace:
public class Ace extends Card
{
public String isAce;
public Ace()
{
}
public Ace(int cardNumber, String cardName, String isAce)
{
this.cardNumber = cardNumber;
this.cardName = cardName;
this.isAce = "yes";
}
}
当我尝试编译Ace时,我不明白为什么会出现错误。我在做什么错了?
答案 0 :(得分:2)
Card
有一个构造函数(因此它没有一个 default
空的构造函数)。您需要在Ace
构造函数中显式调用它。喜欢,
public Ace(int cardNumber, String cardName, String isAce)
{
super(cardNumber, cardName);
this.isAce = "yes";
}
在没有显式调用super()
(或this()
)的情况下,编译器会隐式添加super()
(不带参数)。这在这里不起作用。因为(如上所述)Card
已经具有一个非空的,非默认的构造函数。