【发布时间】:2020-05-08 21:44:46
【问题描述】:
这是我的界面:
public interface prog56pack2interface
{
double add (int v1, int v2);
double subtract (int v1, int v2);
double product (int v1, int v2);
double divide (int v1, int v2);
String showme ();
}
这是我的实现类的代码:
public class prog56pack2implclasses1 implements prog56pack2interface
{
public double add (int v1, int v2)
{
return v1 + v2;
}
public double subtract (int v1, int v2)
{
if (v1 > v2)
{
return v1 - v2;
}
else
{
return v2 - v1;
}
}
}
我在这里有两个主要疑问:
1)为什么我按原样编译上面的代码时会出现这个错误
prog56pack2implclasses1 不是抽象的,不会覆盖公共类 prog56pack2implclasses1 实现 prog56pack2interface
2) 当我包含提示用户进行 I/O 操作的“divide()”方法时,我收到一个错误:(我在方法附近包含了 throws IOException)
prog56pack2implclasses1 中的divide(int,int) 无法在prog56pack2interface 中实现divide(int,int)。
关于我在哪里以及为什么我错了的任何 cmets 都会非常有帮助。
【问题讨论】:
-
For 1) 您需要实现
interface的 all 方法(或将您的类声明为abstract并让您的类的扩展处理您拥有的那些't)。 -
以上评论属实!对于 2),我认为我们需要更多的代码(您的代码以及错误的堆栈跟踪)。如果你从接口实现一个方法,它不应该抛出异常。
-
@Lutzi 当“抛出”被删除时它会编译,但我不明白为什么?执行方法“divide()”时抛出错误,它说“重写的方法不会抛出 IOException”
-
如果没有看到完整的异常消息、您对
divide()的实现以及您如何使用它,我无法为您提供帮助。