【发布时间】:2015-01-09 20:03:52
【问题描述】:
我有这个问题:
我正在尝试编译这个:
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();
}
}
但它一直给我这个错误:
Agora.java:3: 错误:CreditCardPayment 类中的构造函数 CreditCardPayment 不能 应用于给定类型; 公共类 Agora 扩展 CreditCardPayment {
必需:浮点数、字符串、字符串、整数 发现:没有参数 原因:实际参数列表和形式参数列表的长度不同
这是 CreditCardPayment 类:
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;
}
我是一名计算机科学专业的学生,还不太了解,所以如果这只是一个愚蠢的错误,但我找不到,请原谅。任何帮助将不胜感激!
【问题讨论】:
-
尝试重新编译类。
-
继承是
is-a关系。当您创建一个Agora时,它还必须创建一个CreditCardPayment。由于您需要将参数传递给CreditCardPayment构造函数,因此您需要使用super(),类似于在CreditCardPayment中的使用方式
标签: java