Это мой класс интерфейса
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
Когда я просто использую сберегательный счет только в моем основном классе, он работает нормально с правильным выводом.Мне нужны данные как сохраняющего, так и текущего счета.