[英]Java interfaces and downcasting
我有一個Fraction
類,該類實現了一個名為FractionInterface
的接口。 在FractionInterface
我指定了一個FractionInterface add(FractionInterface secondFraction);
方法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的提示,但我不確定該怎么做。 有人可以解釋我在做什么錯嗎?
您期望這做什么?
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());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.