2013-04-21 2 views
-4

В начале программы у меня есть class BusinessAccount extends GasAccount. GasAccount является суперклассом и BusinessAccount является подклассом.Я сделал подкласс из суперкласса, но он не распознает «extends»

Я также возникли проблемы с перегрузкой метода в нижней части, которая предназначена для переопределения метода суперкласса для расчета баланса в GasAccount объекта со скидкой объекта применяется к стоимости новых единиц, которые в свою очередь будет , добавленный к текущему балансу объекта BusinessAccount. Этот метод возвращает значение String , указывающее успешную или неудачную транзакцию. У меня есть следующий код для этого метода

import java.util.Scanner ; 
class BusinessAccount extends GasAccount 
{ 
     // The objects properties are declared as private 
     private double dblDiscount ; 
     // The objects methods are defined as public 
     public BusinessAccount (int intNewAccRefNo, String strNewName, String 
          strNewAddress,double dblNewUnits, double dblNewDiscount, int  intAccRefNo, String strName, double dblUnits, String strAddress) 
      { 
      // The constructor - same name as the class and no return type 
      dblDiscount = dblNewDiscount; 
      } 

    public void setNewDiscount (double dblNewDiscount) 
     { 
      dblDiscount = dblNewDiscount ; 
     } // end of setNewDiscount 
    public double getDiscount() 
     { 
      return dblDiscount ; 
     } // end of getDiscount method 
    public string recordUnits ( double dblUnitsUsed); 

    if (dblDiscount = 0.00){ 
     dblBalance = (dblUnitCost * dblUnitsUsed) + dblBalance; 
      return "Successful"; 
      } 
    else { 
     dblBalance = ((dblUnitCost * dblUnitUSed) \ 100 * dblDiscount) + dblBalance; 
      return "Unseccfessful"; 
    } // end of Override method  
} // end of class 

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

+0

Post всего код, пожалуйста! Ничто не может быть выведено с такой скудной информацией! – NINCOMPOOP

+4

'public double recordUnits' Если вы говорите, что возвращает' double', верните 'double'; если вы хотите вернуть «String», скажите так. –

+0

Основываясь на вашем описании, кажется, что ваша первая проблема заключается в том, что ваш класс BusinessAccount не является общедоступным. Выражение класса должно выглядеть так: 'public class BusinessAccount расширяет GasAccount'. – Laf

ответ

1

код вы вывесили недействителен: декларация метод не должен иметь точку с запятой между закрывающей скобкой и открывающей скобкой:

public double recordUnits(double dblUnitsUsed) // no semicolon here 
{ 

же для если и другого заявления, которые, если они содержат более одна инструкция должна вложить их в скобки:

if (dblDiscount = 0.00) { 
    dblBalance = (dblUnitCost * dblUnitsUsed) + dblBalance; 
    return "Successful"; 
} 
else { 
    dblBalance = ((dblUnitCost * dblUnitUSed) \ 100 * dblDiscount) + dblBalance; 
    return "Unsuccfessful"; 
} 

Также научитесь отступывать свой код, как я сделал выше, чтобы сделать его читаемым.

И, конечно, как указано в комментариях, метод, возвращающий двойной, не может вернуть строку.

Всегда читайте и пытайтесь понять сообщения об ошибках компилятора. Если вы их не понимаете, опубликуйте их в своем вопросе. Сообщения об ошибках предназначены для чтения и содержат содержательную информацию.

3

общественные двойные recordUnits (двойной dblUnitsUsed)

Этот метод был определен для возврата двойной, однако ваши обратные утверждения являются строки. Если вы хотите, чтобы вернуть струны вы должны использовать:

общественных строковых recordUnits (двойной dblUnitsUsed) {} ​​

Смежные вопросы