Создание объекта подкласса аккаунта

1

Поэтому у меня вопрос о том, как создавать экземпляры подкласса в 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() который я должен использовать, поэтому я пропускаю эту часть задания.

  • 0
    просто предложение: в обоих ваших методах withdraw вас есть else balance = balance - w; Я хотел бы рассмотреть вопрос об изменении этого на else super(w) .
  • 0
    @Jeeter, вероятно, означает super.withdraw(w) .
Показать ещё 2 комментария
Теги:
instance
subclass

1 ответ

0

Если я правильно понимаю вашу проблему (и не стесняюсь уточнять), вам нужно создать конструктор для каждого из классов:

public Checking(){
    super();
    //other initialization
}

public Savings(){
    super();
    //other initialization
}

и назовите их из main с ключевым словом new:

Savings mySavings = new Savings();
Checking myChecking = new Checking();
Account myAccount = new Account();
  • 0
    Нет необходимости в вызовах super() , они выполняются автоматически.
  • 0
    Я постараюсь реализовать ваше предложение завтра @Jeeter, я пытался создать экземпляр сбережений, используя имя класса имя_объекта = новое имя класса. (т.е. Savings mySavings = newSavings ();), который должен был активировать конструктор по умолчанию из моего класса Account, но по какой-то причине этого не произошло. Но я устал, поэтому не уверен, что он делает то, что я хочу. Спасибо за вашу помощь, и я обновлю эту ветку завтра
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню