我在以下问题上显示复利和贷款时遇到问题。我必须有一个抽象的超类和两个方法,一个是集合,一个是获取存储原则量,一个是抽象集合,一个是获取存储速率和年份。当我运行这个项目时,我不知道我做错了什么,无论我做什么,大院和贷款都保持在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;
}
@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)