当前位置: 首页 > 知识库问答 >
问题:

返回要显示的超类抽象方法的字符串

蔚和安
2023-03-14

必须实现抽象方法语句(在超类中)才能返回语句的字符串表示形式。

所以我做了以下工作:

 public abstract String statement(); //The abstract method in my super class

…以及我的子类中的方法:

//@Override
public String statement() 
{
    return String.format("Account no %d has balance R%d and minimum balance R%d", accountNumber,balance,getMinBalance());
}

我的主类只调用Account类(有问题的超级类),如下所示:

new SavingsAccount(Integer.toString(ao[i]),ao[i+1],ao[a]); //ao being the array which contains the values.

然而,控制台只是终止,没有显示任何内容(我也不熟悉实现)。

以下是完整的代码:

主要内容:

public class AccountList 
{
    public static void main(String[] args) 
    {
        int[] ao = {00000,0,0,12345,500,250,23456,230,-50,34567,340,500,45678,-320,-50,56789,-320,-500};

        for(int i=0;i<ao.length;i=i+3)
        {
            int a = i+2;
            if(ao[a]>=0)
            {

                new SavingsAccount(Integer.toString(ao[i]),ao[i+1],ao[a]);
            }
            if(ao[a]<=0)
            {

                new ChequeAccount(Integer.toString(ao[i]),ao[i+1],ao[a]);
            }   
        }
    }
}

超级类:

public abstract class Account implements InterestAccount
{
    static String accountNumber;
    int balance;

    public Account()
    {
        accountNumber = "00000";
        balance = 0;
        //statement();
    }
    public Account(String accountNumber,int balance)
    {
        setAccountNum(accountNumber);
        setBalance(balance);
    }
    public void setAccountNum(String accNum)
    {
        accountNumber = accNum;
    }
    public void setBalance(int balance)
    {
        this.balance = balance;
    }
    public String getAccountNumber()
    {
        return accountNumber;
    }
    public int getBalance()
    {
        return balance;
    }
     public abstract String statement();
}

其中一个子类:

public class SavingsAccount extends Account
{
    int minBalance;

    public SavingsAccount()
    {
        super();
        minBalance = 0;
    }
    public SavingsAccount(String accountNum,int minBalance,int balance)
    {
        super(accountNum,balance);
        setMinBalance(minBalance);
    }
    public void setMinBalance(int minBalance)
    {
        this.minBalance = minBalance;
    }
    public int getMinBalance()
    {
        return minBalance;
    }
    @Override
    public int calculateInterest(int value) {

        if(minBalance>balance)
        {
            return 0;           
        }
        else
        {
            return (minBalance*balance)/100;
        }
    }
    //@Override
    public String statement() 
    {
        return String.format("Account no %d has balance R%d and minimum balance R%d", accountNumber,balance,getMinBalance());
    }

}

共有2个答案

秋阳荣
2023-03-14

了解更多的代码可能会有所帮助,但从我看到的情况来看,有一些可能的情况:

  • 代码运行和终止时不会出错。看不到任何内容的原因是,标准输出流中没有写入任何内容(例如,通过System.out.println())

在任何情况下,使用调试器来逐步完成代码,并确定哪些部分运行完美,如果有任何部分失败。这可能有助于提取一些局部变量,给它们正确的有意义的名称,并在执行过程中观察它们的内容。

呼延鸿畅
2023-03-14

从不调用方法语句。

1)创建一个新的Savings帐户对象

new SavingsAccount(Integer.toString(ao[i]),ao[i+1],ao[a]);

2)构造类被上述语句调用

public SavingsAccount(String accountNum,int minBalance,int balance)
{
    super(accountNum,balance);
    setMinBalance(minBalance);
}

3)子类然后调用超类方法公共帐户(字符串帐户号,int平衡){setAcCountNum(帐户号); setBalance(平衡);}

4) 这就是所谓的平衡

public void setBalance(int balance)
{
    this.balance = balance;
}

5) setMinBalance打电话来了

public void setMinBalance(int minBalance)
{
    this.minBalance = minBalance;
}

6)创建对象的结束Savings帐户

没有单个语句调用方法语句

 类似资料:
  • 我正在尝试实现和重写具有不同返回类型的方法,而不会被迫转换返回类型。 我的问题:是否可以在不强制强制转换的情况下返回不同的类型?解决这个问题的抽象方法看起来怎么样? 我认为必须有一个解决方案,因为编译器应该知道返回类型...

  • 本文向大家介绍抽象类必须要有抽象方法吗?相关面试题,主要包含被问及抽象类必须要有抽象方法吗?时的应答技巧和注意事项,需要的朋友参考一下 不需要,抽象类不一定非要有抽象方法;但是包含一个抽象方法的类一定是抽象类。 示例代码: 上面代码,抽象类并没有抽象方法但完全可以正常运行。

  • 我想从这里得到Overweite CorsUtils抽象类https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/cors/reactive/CorsUtils.html.我试过这个: 但是看起来这不是正确的实现方式。你能指导我什么是正确的方法来实现这一点吗?

  • 我在想有没有更好的办法。我想要的是在抽象类中有一个具体的方法,返回扩展抽象类的具体实例。 我认为我不应该把它转换成T,因为它总是T的一个实例。

  • 问题内容: 我现在正在学习Java,并且是Abstract的一部分。我读到一个奇怪的部分,我有一个抽象类,其中不包含任何abstarct方法。 他们为什么要使用此类课程? 问题答案: 为了防止实例化该类并将其仅用作基类。子类可以使用抽象类中定义的常规方法。 例如,创建的实例没有任何意义。但是所有车辆都可以重复使用一种通用方法。

  • 我创建了Person类,它由类的Student和Employee扩展(由其他Employee类型的类扩展)。person类如下所示: 我目前正在尝试创建一个方法,它将显示所有的人,如果他们是gender=“male”。我有: 我不确定如何引用方法中的对象(学生和雇员,它们都是persons)来返回它们。而我也不知道在主法中如何引用这个方法。我不能用个人打印,但如果我用 然后使用 我只是返回jame