Java 从子类调用超类方法
我正在用一个超类Java 从子类调用超类方法,java,inheritance,subclass,superclass,bank,Java,Inheritance,Subclass,Superclass,Bank,我正在用一个超类account和一个不能透支的子类SavingsAccount对一个银行账户进行建模。从主类调用makedrawing()方法时,应该检查提取是否大于余额,并提示输入,然后编辑余额 如何从Account调用makedrawing()方法,并使用super关键字在SavingsAccount中重写它?我的编译器给了我“错误:不兼容类型:缺少返回值” 科目中的方法: double makeWithdrawal(double withdrawal) { return ba
account
和一个不能透支的子类SavingsAccount
对一个银行账户进行建模。从主类调用makedrawing()
方法时,应该检查提取是否大于余额,并提示输入,然后编辑余额
如何从Account
调用makedrawing()
方法,并使用super关键字在SavingsAccount
中重写它?我的编译器给了我“错误:不兼容类型:缺少返回值”
科目中的方法
:
double makeWithdrawal(double withdrawal) {
return balance -= withdrawal;
}
public double makeWithdrawal(double withdrawal) {
double tempbalance = getBalance();
if (withdrawal > getBalance()) {
withdrawal = Input.getDouble("Your withdrawal cannot be larger than your balance. Enter a withdrawal <= "+getBalance());
return;
}
else {
return super.makeWithdrawal(withdrawal);
}
}
(非常简单。)这个方法最初是抽象的,但它会导致错误
SavingsAccount
中的方法:
double makeWithdrawal(double withdrawal) {
return balance -= withdrawal;
}
public double makeWithdrawal(double withdrawal) {
double tempbalance = getBalance();
if (withdrawal > getBalance()) {
withdrawal = Input.getDouble("Your withdrawal cannot be larger than your balance. Enter a withdrawal <= "+getBalance());
return;
}
else {
return super.makeWithdrawal(withdrawal);
}
}
public双重提款(双重提款){
double tempbalance=getBalance();
如果(取款>获取余额()){
取款=输入。getDouble(“您的取款不能大于您的余额。如果我理解正确,请输入取款:
Account是基类,SavingsAccount是子类
然后:super.makedrawing(撤回);
定义类时还要确保继承:
public class SavingsAccount extends Account{...}
问题不在于您对super.makeDrumpl()的调用
,这是正确的。它上面的if
子句中包含空的return
语句。您获取更新取款金额的逻辑是合理的,但您需要在执行此操作时返回新余额。我建议将调用移至super.makedrawul()
条件之外:
if(withdrawal > getBalance()) {
withdrawal = Input.getDouble("Your withdrawal cannot be larger than your balance. Enter a withdrawal <= "+getBalance());
}
return super.makeWithdrawal(withdrawal);
if(取款>获取余额()){
取款=输入。getDouble(“您的取款不能大于您的余额。请在if中输入取款)
if (withdrawal > getBalance()) {
withdrawal = Input.getDouble("Your withdrawal cannot be larger than your balance. Enter a withdrawal <= "+getBalance());
return;
}
if(取款>获取余额()){
取款=输入。getDouble(“您的取款不能大于您的余额。请输入取款问题在于
返回
你应该把它换成
退换货
public双重提款(双重提款){
double tempbalance=getBalance();
如果(取款>获取余额()){
取款=Input.getDouble(“您的取款不能大于您的余额。请输入取款super.makedrawing()
I had super.makedrawing()in SavingsAccount in else())。当你这样做时会发生什么?可能是OP的重复,你需要指出错误发生的位置。答案比你说的要简单得多。没有回答问题。谢谢,我会试试这个