当前位置: 首页 > 知识库问答 >
问题:

Java:构造函数和参数列表错误

端木皓君
2023-03-14
public class Agora extends CreditCardPayment {

public void run() {

CashPayment ad1 = new CashPayment(12f);
ad1.paymentDetails();

CashPayment ad2 = new CashPayment(156.4f);
ad2.paymentDetails();

int cardnum1 = 1253462136;
CreditCardPayment ad3 = new CreditCardPayment(325.99f , "Visa" , "12/1/2015" , cardnum1);
ad3.paymentDetails();

int cardnum2 = 1235623151;
CreditCardPayment ad4 = new CreditCardPayment(999.99f , "Master" , "25/6/2016" , cardnum2);
ad4.paymentDetails();
 }
}
public class CreditCardPayment extends Payment{

public CreditCardPayment(float x ,String name , String exp_date , int card_num) {
 super (x);
 Card_name = name;
 Expiration_date = exp_date;
 Card_number = card_num;
 }

public String paymentDetails() {
  return super.paymentDetails() + "Card's name :" + Card_name + " , Expiration Date :" + Expiration_date + " , Card Number :" + Card_number ;
  }

  private String Card_name;
  private String Expiration_date;
  private int Card_number;
  }

共有1个答案

轩辕弘雅
2023-03-14

基于@clcto的评论:Java为类提供了一个无参数的默认构造函数,除非您指定了一个或多个其他构造函数。您已经为CreditCardPayment提供了构造函数,因此该类没有no-arg构造函数。

您没有为Agora提供构造函数,因此默认行为是假设一个no-arg构造函数,就像您已经编写了

public Agora() {
    super();
}

但是超类(CreditCardPayment)没有no-arg构造函数,所以这是失败的。

 类似资料:
  • 我一直在拼命地尝试让这段代码工作。这是我第一次使用对象/构造函数(我是一个新程序员),这让我很困惑。我完全诚实;我不知道问题是什么。我已经尝试了很多东西,所以这段代码相当混乱。我也受够了,重新开始制作第二个代码,它也因为与第一个代码相同的原因而不起作用,尽管该代码的结构略有不同。我将在下面发布这两次尝试,希望有人能看到我的错误。谢谢! 尝试1: 尝试2: 任何帮助都将不胜感激。此外,因为我认为我的

  • 我不明白为什么它会给我一个错误代码,找不到合适的构造函数。 怎么了?

  • 所以我接到了一个任务,我必须在一段有点大而草率的代码中查找并修复许多错误。我只剩下最后一个了,我找不到解决这个问题的办法。我读过类似的场景,人们会犯同样的错误,但我无法将它们与我的代码联系起来。这就是我得到错误的地方:

  • 实际上,我不明白无参数构造函数和默认构造函数的区别是什么。 在创建名为cFrame的Test对象时,是否调用此类的默认构造函数?

  • Kotlin中的参数与Java中有些不同。如你所见,我们先写参数的名字再写它的类型: fun add(x: Int, y: Int) : Int { return x + y } 我们可以给参数指定一个默认值使得它们变得可选,这是非常有帮助的。这里有一个例子,在Activity中创建了一个函数用来toast一段信息: fun toast(message: String, length: I

  • 鉴于 IntelliJ IDEA 2016.1.1报告“可以替换为方法引用”。 我知道无参数构造函数的< code>Foo::new语法,但是不知道如何将< code>foo作为参数传入。我肯定漏掉了什么。