簡體   English   中英

Java接口和向下轉換

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM