2015-02-04 4 views
0

У меня есть этот метод в классе А «» BankAccount.javaКак использовать метод возвращения из другого класса Java

public double calculateInterest() 
    { 
    double myInterest = 0.0; 
    if(myBalance > 0.0){ 
    myInterest = this.myBalance * (myInterestRate/12.0); 
    } 
    return myInterest; 
} 

мне нужно использовать этот метод в моем другом классе, такие как:

SavingsAccount extends BankAccount 

     if(this.myBalance > 0) 
     { 
      System.out.println(calculateInterest()); 
      this.myBalance += super.calculateInterest(); 
      this.myBalance -= this.myMonthlyServiceCharges; 
     } 

Почему я не могу сделать

this.myBalance += super.calculateInterest(); 

она возвращается в 0,0

, когда оно должно быть возвращение около 0,4

Любая помощь будет здорово, спасибо

это работает, если я ставлю этот код в моем классе SavingsAccount

public double calculateInterest() 
{ 
    double myInterest = 0.0; 
    if(myBalance > 0.0){ 
    myInterest = this.myBalance * (myInterestRate/12.0); 
    } 
    return myInterest; 
    } 

Но это на самом деле не учат мне как правильно использовать абстрактный класс

+0

является 'myBalance' когда-либо инициализированным выше 0? –

+0

Да, если я удалю оператор if, приведенные ниже инструкции все равно не сработают. Можете опубликовать больше кода, если это неясно. – user1920076

+0

myBalance в BankAccount может быть по умолчанию 0, так как u не может быть инициализирован никаким другим значением. Кажется, это переменная экземпляра класса BankAccount. –

ответ

0

Работает для меня. Здесь я воспроизвожу со следующими

public class BankAccount { 

    protected double myBalance = 0; 
    protected double myInterestRate = .6; 

    public double calculateInterest() { 
     double myInterest = 0.0; 
     if (myBalance > 0.0) { 
      double myInterestRate; 
      myInterest = this.myBalance * (this.myInterestRate/12.0); 
     } 
     return myInterest; 
    } 
} 

А потом ....

public class SavingsAccount extends BankAccount { 

    double myMonthlyServiceCharges = 1; 

    public static void main(String[] args) { 
     SavingsAccount sa = new SavingsAccount(); 
     sa.myBalance = 14; 
     sa.doIt(); 
    } 

    void doIt() { 
     if (this.myBalance > 0) { 
      System.out.println(super.calculateInterest()); 
      this.myBalance += super.calculateInterest(); 
      this.myBalance -= this.myMonthlyServiceCharges; 
     } 
    } 

} 

Вы можете попробовать, что и посмотреть, если он работает для вас?