我有一个Fraction
类,它实现了一个名为FractionInterface
的接口。在FractionInterface
中,我指定了方法FractionInterface add(FractionInterface secondFraction);
。我在Fraction
课程中实现此方法时遇到了问题。
public class Fraction implements FractionInterface
{private int num; // Numerator
private int den; // Denominator
public int getNum()
{
return this.num;
} // end getNum
public int getDen()
{
return this.den;
} // end getDen
public FractionInterface add(FractionInterface secondFraction)
{
FractionInterface result = (num*secondFraction.getDen()+secondFraction.getNum()*den)/
(den*secondFraction.getDen());
}
}
我收到一个错误,说“类型不匹配:无法从int转换为FractionInterface。”,我得到了一个提示,将参数secondFraction从FractionInterface向下转换为Fraction,但我不知道该怎么做。有人可以解释我做错了吗?
答案 0 :(得分:1)
您对此有何看法?
FractionInterface result = (num*secondFraction.getDen()+secondFraction.getNum()*den)/
(den*secondFraction.getDen());
右侧是数字,左侧是对象。编译器无法知道如何将数字转换为Fraction
对象。
你的Fraction
类中需要一个接受分子和分母的构造函数:
public Fraction(int numerator, int denominator) {
num = numerator;
den = denominator;
}
然后执行此操作
FractionInterface result = new Fraction(THENUMERATOR, THEDEMONIMATOR);
我认为,对你来说,
FractionInterface result = new Fraction(
(num*secondFraction.getDen()+secondFraction.getNum()*den),
(den*secondFraction.getDen());