Java子类无参数

时间:2018-11-19 00:39:15

标签: java

我有一堂课叫做“卡片”

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时,我不明白为什么会出现错误。我在做什么错了?

1 个答案:

答案 0 :(得分:2)

Card有一个构造函数(因此它没有一个 default 空的构造函数)。您需要在Ace构造函数中显式调用它。喜欢,

public Ace(int cardNumber, String cardName, String isAce)
{
    super(cardNumber, cardName);
    this.isAce = "yes";
}

在没有显式调用super()(或this())的情况下,编译器会隐式添加super()(不带参数)。这在这里不起作用。因为(如上所述)Card已经具有一个非空的,非默认的构造函数。