gpt4 book ai didi

Java 接口(interface)和向下转型

转载 作者:行者123 更新时间:2023-12-01 13:21:45 24 4
gpt4 key购买 nike

我有一个 Fraction 类,它实现了一个名为 FractionInterface 的接口(interface)。在FractionInterface中,我指定了一个方法FractionInterface add(FractionInterface secondaryFraction);。我在我的 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。”,有人提示我将参数 secondaryFraction 从 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());

关于Java 接口(interface)和向下转型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21976067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com