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

Java方法中的抽象方法工作不正常

鲍向笛
2023-03-14

我在以下问题上显示复利和贷款时遇到问题。我必须有一个抽象的超类和两个方法,一个是集合,一个是获取存储原则量,一个是抽象集合,一个是获取存储速率和年份。当我运行这个项目时,我不知道我做错了什么,无论我做什么,大院和贷款都保持在0.0。请帮忙!!谢谢哦,我还必须创建对象的引用,我知道怎么做。注:我最初有公共双年费和公共双年费,但由于不起作用,我创建了第2年费率2等。

public static void main(String[] args) {
        //Instance of Scanner
        Scanner input = new Scanner(System.in);

        //Instances
        Guarantee guara = new Guarantee();
        CompoundInterest compI = new CompoundInterest();
        Loan borrow = new Loan();



        System.out.println("Please enter the principle amount: ");
        double principleAmount = input.nextDouble();

        System.out.println("Please enter the rate ");
        double rate = input.nextDouble();
        System.out.println("Please enter the years : ");
        double years = input.nextDouble();

        Funds ref = guara;
        ref.setPrincipleAmount(principleAmount);
        ref.setData(rate, years);
        System.out.printf("With a principle amount of $%.2f , an interest rate of %.2f, and %.2f years, you would have earned $%.2f\n", principleAmount, rate, years, guara.getData());


        ref = compI;
        ref.setData(rate, years);
        System.out.printf("With a principle amount of $%.2f, an interest rate of %.2f, and %.2f, you would have a compound interest of $%.2f\n", principleAmount, rate, years, ref.getData());




        //Instances



    }//End main

}//End class


//Super class
abstract class Funds{
    //Instance variables
    public double principleAmount;
    public double rate;
    public double years;
    public double rate2;
    public double rate3;
    public double year2;
    public double year3;
    public void setPrincipleAmount(double principleAmount){
        this.principleAmount = principleAmount;
    }//End setPrincipleAmount

    public double getPrincipleAmount(){
        return principleAmount;
    }//End getPrincipleAmount

    public abstract void setData(double rate, double years);
    public abstract  double getData();




}//End abstract class Funds


class Guarantee extends Funds{

    @Override
    public void setData(double rate, double years) {
        this.rate = rate;
        this.years = years;

    }

    @Override
    public double getData() {
        return (principleAmount * rate * years);


    }




}//End sub class Guarantee


class CompoundInterest extends Funds{

    @Override
    public void setData(double rate, double years) {
        // TODO Auto-generated method stub
        this.rate = rate2;
        this.years = year2;

    }

    @Override
    public double getData() {
        // TODO Auto-generated method stub
        return (principleAmount * Math.pow(1 + rate2, year2));
    }




}//End sub class CompundInterest

class Loan extends Funds{

    @Override
    public void setData(double rate, double years) {
        // TODO Auto-generated method stub
        this.rate = rate3;
        this.years = year3;
    }

    @Override
    public double getData() {
        // TODO Auto-generated method stub
        return (principleAmount * rate3 * year3) + principleAmount;
    }

共有1个答案

咸昊昊
2023-03-14
 @Override
public void setData(double rate, double years) {
    // TODO Auto-generated method stub
    this.rate = rate2;
    this.years = year2;

}

应该是

 @Override
public void setData(double rate, double years) {
    // TODO Auto-generated method stub
    this.rate2 = rate;
    this.years2 = year;

}

请重新检查你的作业。它们似乎不正确。

 类似资料:
  • 问题内容: 我想编写一个抽象方法,但编译器始终显示此错误: 抽象方法不能有主体 我有这样的方法: 怎么了 问题答案: 抽象方法意味着没有默认实现,并且实现类将提供详细信息。 本质上,您将拥有 因此,它与错误状态完全相同:您的抽象方法不能具有主体。 在Oracle网站上有完整的教程,网址为:http : //download.oracle.com/javase/tutorial/java/IandI

  • 问题内容: Java 8接口默认方法与抽象类中的非抽象方法-两者之间是否有任何区别(除了iface-类,可见性等不同) 默认方法不是Java的后退一步,是否违反Java多年来宣传的本质? 问题答案: 如果抽象子类的具体子类被super()覆盖,则抽象类中的非抽象方法将被调用。因此,存在多种可能性。如果不重写method,则将执行超类方法。如果我们在具体的子类方法中使用super(),则将执行被超类

  • Java 8接口默认方法与抽象类中的非抽象方法--两者之间有什么区别吗(除了iface-class、可见性等的区别之外) 默认方法是不是在Java中倒退了一步,意味着它违背了Java多年来宣传的本质?!

  • 问题内容: 我在将继承与Python结合使用时遇到麻烦。尽管对于Java而言,这个概念对我来说似乎太容易了,但到目前为止,我仍然无法用Python理解,这至少令我惊讶。 我有一个原型如下: 在上面的代码中,我如何才能创建一个需要为所有子类实现的抽象方法? 问题答案: 遵循这些思路,使用ABC 另请阅读此优秀教程:http : //www.doughellmann.com/PyMOTW/abc/ 您

  • 我试图用Spring Boot和ReactJs构建一个CRUD应用程序,但我在“Edit”方法中遇到了一些错误。当我试图编辑一个用户时,我在网络选项卡中得到一个404错误,我设法在框中写入,当我想保存而不是编辑我选择的用户时,一个新的添加。“add”方法工作正常,但我认为这是方法之间的重叠。我将把代码留在这里:

  • 为什么我从下面的代码中得到这个编译错误消息? (程序根据键盘上按下的箭头键,在4个方向上移动箭头:d) Direction.java:41:错误:DirectionBoard。DirectionListener不是抽象的,并且不会覆盖KeyListener中的抽象方法keyReleated(KeyEvent)