2017-02-05 9 views
-3

Всего новичков здесь (спасибо за подшипник). Я создал абстрактный родительский класс:Аргумент класса ребенка не принимается Суперрефлектором класса

public abstract class Account { 


public double setInterestRate (double interestRate) { 

    return this. interestRate = interestRate/100; 


public abstract void withdraw(double amount); 


public void deposit(double amount) { 
    if (amount < 0) { // amount is invalid: exception occurs 
     throw new IllegalArgumentException("Error: Deposit cannot be a" 
      + " negative value."); 
    } else { 
    this.deposit = amount; 
    balance = balance + amount; 

    } 
} 

public void calculateBalance() { 

     double interestTotal = balance * setInterestRate(interestRate); 
     this.balance = balance + interestTotal; 

}  
public double annualEarnings (double interest) { 

    return this.interest = 1000 * setInterestRate(interestRate); 

}

В дочернем классе я хочу передать переменную annualInterest в качестве аргумента метода super.annualEarnings (annualInterest) я зову в ToString():

public class CheckingAccount extends Account implements Overdraftable { 

protected double annualInterest = 1.0; 

@Override 
public String toString() { 

    return super.toString() + "\n"+ account + "\t\t" + deposit + "\t\t" 
     + withdrawAmt +"\t\t" + super.annualEarnings(annualInterest)+ "\t\t" + super.balance ; 

} 

Я надеюсь, что для этого типа распечатки:

======================================= 
AccNo. Deposit Withdraw Intr. NewBal 
======================================= 
101 200.00 0.00 10.00 1210.00 

где Init простые проценты на 1000 долларов США ежегодно составляют 10 долларов США, а 10,00 (в долл. США), а остальная сумма - это депозит в размере 200 долларов США, добавленный к первоначальной ставке в размере 1000 долларов США с процентом в размере 10 долларов за NewBal.

+0

Вы можете отметить, что фактический выход/ошибка, которую вы видите, а также полная структура класса поможет –

+1

@AkashYadav просто добавили весь много - спасибо помощнику! –

+1

все еще нуждается в большом количестве, чтобы заставить его работать. пожалуйста, посмотрите на это https://en.wikipedia.org/wiki/Minimal_Working_Example –

ответ

0

Есть что-то, что не имеет для меня никакого смысла. В родительском классе метод, который вычисляет годовой доход, принимает переменную, называемую interest, но затем она полностью отбрасывается и вместо нее используется локальная переменная interestRate.

public double annualEarnings (double interest) { 

    return this.interest = 1000 * setInterestRate(interestRate); 
} 

Я думаю, что это должно быть

public double annualEarnings (double interest) { 

     return this.interest = 1000 * setInterestRate(interest); 
    } 
+0

только что отредактировал его. Спасибо за помощь. –

+0

спасибо за внимание. Я попробовал это, и он изменил все это - теперь хорошо работает. Дьяволы в деталях, как говорится. Спасибо за вашу помощь! –

+0

Рад, что это сработало. Пожалуйста, не стесняйтесь просить ничего. –