Java 创建两个子类用于检查和保存帐户。支票账户有透支限额,但储蓄账户不能透支
已定义Account类以对银行帐户进行建模。帐户具有属性帐号、余额、年利率、创建日期以及存取资金的方法 现在创建两个子类用于检查和保存帐户。支票账户有透支限额(比如1000美元加上25美元的手续费),但储蓄账户不能透支 编写一个测试程序,创建Account、SavingsAccount和CheckingAccount的对象,并调用它们的toString()方法 上面是说明,下面是我的代码。我不知道如何将子类调用到主Account类中。我还想知道如何应用toString()方法,因为我也无法得到它。我还在代码中保留了我的大部分注释,在代码中我尝试了不同的想法Java 创建两个子类用于检查和保存帐户。支票账户有透支限额,但储蓄账户不能透支,java,subclass,abstract,Java,Subclass,Abstract,已定义Account类以对银行帐户进行建模。帐户具有属性帐号、余额、年利率、创建日期以及存取资金的方法 现在创建两个子类用于检查和保存帐户。支票账户有透支限额(比如1000美元加上25美元的手续费),但储蓄账户不能透支 编写一个测试程序,创建Account、SavingsAccount和CheckingAccount的对象,并调用它们的toString()方法 上面是说明,下面是我的代码。我不知道如何将子类调用到主Account类中。我还想知道如何应用toString()方法,因为我也无法得到它
套餐账户;
公共类CheckingAccount扩展帐户{
双重透支=-1000;
公共作废检查(双i){
//将双变量余额初始化为0.0
双平衡=0.0;
if(余额-i<透支){
System.out.println(“失败:透支不能超过1000美元。25美元以上”
+“透支费将记入您的账户。”);
余额=余额-25;}
其他的
平衡=平衡-i;
}
}
套餐账户;
公共类SavingsAccount扩展帐户{
双重透支限额=0;
公共作废撤销(双w){
if(余额-w<透支限额)
System.out.println(“资金不足”);
其他的
平衡=平衡-w;
}
}
我不确定调用子类是什么意思,但toString方法的签名是
public String toString(){
}
由于默认情况下Java中的所有内容都是虚拟的,因此只需在子类中使用该方法即可覆盖它。根据我的猜测,这个问题似乎希望您调用toString方法中的各种方法,并返回所需信息的完整字符串
另一方面,要调用超类方法,即使子类在Java中重写它,语法是
super.function()
首先,您需要为储蓄帐户和支票帐户创建默认构造函数。然后您需要创建一个重载构造函数(假设您将向子类传递唯一的额外值) 至于toString(),您需要每个子类都有自己的子类
String toString(){
String x = "Savings: " + totalSavings + ". And the fee's assessed are: " + fees";
return x;
}
这将允许您调用
savingsAccount.toString()代码>将打印信息。您需要覆盖每个类的默认toString方法
例如,在Account类中
@Override
public String toString()
{
String str = "Id: "+ getId() +
"\nBalance: " + getBalance()+
"\nAnnual Interest Rate: " + getAnnualInterestRate() +
"\n Monthly Interest: " + getMonthlyInterest() +
"\n Created on: " + getDateCreated();
return str;
}
然后,在主类中创建Account对象
public static void main(String[] args) {
// TODO Auto-generated method stub
Account account = new Account(1122, 20000);
System.out.println(account); // invoke toString method in Account class
}
结果将是:
身份证号码:1122
余额:20000.0
年利率:0.0
月利息:0.0
创建日期:2016年2月18日星期四15:16:47太平洋标准时间
类似地,您还需要重写子类的toString方法。但您需要使用super关键字连接超类的toString:
public String toString()
{
String str=super.toString();// call superclass's toString()
str+="...";
return str;
}
默认情况下不会调用void函数toString(),这不太可能是您的意图。您可能还希望返回它,而不是打印它:)您可能需要在公共字符串toString()上方添加@Override
,具体取决于您使用的IDE是否正确,您需要返回它,因为字符串
类型declarational非常值得一提,您可以只使用System.out.println(savingsAccount),默认情况下称为:)
String toString(){
String x = "Savings: " + totalSavings + ". And the fee's assessed are: " + fees";
return x;
}
@Override
public String toString()
{
String str = "Id: "+ getId() +
"\nBalance: " + getBalance()+
"\nAnnual Interest Rate: " + getAnnualInterestRate() +
"\n Monthly Interest: " + getMonthlyInterest() +
"\n Created on: " + getDateCreated();
return str;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Account account = new Account(1122, 20000);
System.out.println(account); // invoke toString method in Account class
}
public String toString()
{
String str=super.toString();// call superclass's toString()
str+="...";
return str;
}