Возникли проблемы с выводом программы банковского счета в JAVA - PullRequest
0 голосов
/ 23 сентября 2019

Это мой класс интерфейса

interface InfBankAccount
{
void deposit(double amt);
boolean withdraw(double amt);
String toString();
}

Это мой абстрактный класс

abstract class AbsBankAccount
{
private static long id;
protected String name;
protected long AccNo;
protected double currBalance;

public void deposit(double amt)
{
    currBalance += amt;
}

protected void AssignAccNo()
{
    AccNo = ++id;
}

public abstract boolean withdraw(double amt);

public static long getLastAccNo()
{
    return id;
}

public String toString()
{
    String str = " ";

    str = str + "\nName of Account Holder : " +name;
    str = str + "\nAccount Number : " +AccNo;
    str = str + "\nCurrent Balance : Rs." +currBalance;

    return str;
}

static 
{
    id = 100;
}
}

Это мой класс сберегательного счета

class SavingBankAccount extends AbsBankAccount
{
protected double minBalance;

SavingBankAccount(String name, double currBalance, double minBalance)
{
    this.name = name;
    this.currBalance = currBalance;
    this.minBalance = minBalance;
    AssignAccNo();
}

public String toString()
{
    String str = super.toString();
    str = str + "\nMinimum Balance : Rs." + minBalance;
    return str;
}

public boolean withdraw(double amt)
{
    boolean flag = true;
    if(currBalance - amt < minBalance)
    {
        flag = false;
    }

    else
    {
        currBalance -= amt;
    }

    return flag;
}

public static long getLastAccNo()
{
    return AbsBankAccount.getLastAccNo();
}
}

Это мой текущийБанковский счет

class CurrentBankAccount extends AbsBankAccount
{
protected double overDraftLimit;

CurrentBankAccount(String name, double currBalance, double odl)
{
    this.name = name;
    this.currBalance = currBalance;
    overDraftLimit = odl;
    AssignAccNo();
}

public String toString()
{
    String str = super.toString();
    str = str + "\nOverdraft Limit : Rs." +overDraftLimit;
    return str;
}

public boolean withdraw(double amt)
{
    boolean flag = true;
    if( overDraftLimit + currBalance < amt)
    {
        flag = false;
    }
    else
    {
        currBalance -= amt;
    }

    return flag;
}

public static long getLastAccNo()
{
    return AbsBankAccount.getLastAccNo();
}
}

Это мой основной класс

class InheritanceDemo
{
public static void main(String[] args)
{
    AbsBankAccount abs;
    abs = new SavingBankAccount("Issac Newton", 12000, 1000);
    System.out.println(abs);

    if(abs.withdraw(100))
    {
        System.out.println("\nWithdrawl Successful");
        System.out.println(abs);
    }
    else
    {
        System.out.println("\nWithdrawl Unsuccessful");
        System.out.println(abs);
    }

    InfBankAccount inf;
    inf = new CurrentBankAccount("Leonard Euler", 2000, 1000);
    System.out.println(inf);

    if(inf.withdraw(12000))
    {
        System.out.println("\nWithdrawl Successful");
        System.out.println(inf);
    }
    else
    {
        System.out.println("\nWithdrawl Unsuccessful");
        System.out.println(inf);
    }

    inf.deposit(55000);
    System.out.print(inf);
}
}

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

несовместимые типы: CurrentBankAccount не может быть преобразован в InfBankAccount

Когда я просто использую сберегательный счет только в моем основном классе, он работает нормально с правильным выводом.Мне нужны данные как сохраняющего, так и текущего счета.

...