Поэтому у меня вопрос о том, как создавать экземпляры подкласса в JAVA. Да, это домашнее задание для класса, я полностью реализовал основной класс с дефолтом по умолчанию и конструктором с параметрами для класса Account.
Я создал два подкласса "Сбережения и проверка". Единственными спецификациями из книги для задания было то, что учетная запись проверки не может выйти за лимит овердрафта и что сберегательная учетная запись не может вообще перегружаться.
class Checking extends Account{
double overdraftLimit = -100;
public void withdraw(double w) {
if (balance - w < overdraftLimit)
System.out.println("You can't overdraft more than $100.");
else
balance = balance - w;
}
}
class Savings extends Account{
double overdraftLimit = 0;
public void withdraw (double w) {
if (balance - w < overdraftLimit)
System.out.println("You don't have enough money, fool.");
else
balance = balance - w;
}
}
Моя проблема заключается в том, что я не уверен, как создать экземпляр определенного подкласса, либо " Savings
либо " Checking
. У кого-нибудь есть предложения для меня? В моем родительском классе, Account
, у меня уже есть метод для withdraw ( double w )
, так что balance -= w
. Я уже преодолел метод вывода в каждом из моих подклассов. Мой код компилируется и запускается, но в проблеме мне поручено написать тестовую программу, которая создает объект типа Account
, Savings
, Checking
и вызывает их метод toString()
. Я говорил с моим инструктором, и эта проблема не была полностью завершена до печати, потому что нет никаких инструкций по лимиту овердрафта, разрешенному для учетной записи Checking
.
Также нет упоминания о методе toString()
который я должен использовать, поэтому я пропускаю эту часть задания.
Если я правильно понимаю вашу проблему (и не стесняюсь уточнять), вам нужно создать конструктор для каждого из классов:
public Checking(){
super();
//other initialization
}
public Savings(){
super();
//other initialization
}
и назовите их из main
с ключевым словом new
:
Savings mySavings = new Savings();
Checking myChecking = new Checking();
Account myAccount = new Account();
super()
, они выполняются автоматически.
withdraw
вас естьelse balance = balance - w;
Я хотел бы рассмотреть вопрос об изменении этого наelse super(w)
.super.withdraw(w)
.