如何正确实现接口?
How can I implement interface correctly?
我正在做作业,使用 java 和 java 中的界面制作一个简单的计算器。但是实现 java 的 class 给出错误说
The public type `BasicCalculator` must be defined in its own file
The type `BasicCalculator` must implement the inherited abstract method `calculate.mul(int, int)
这是代码
interface calculate{
public int add(int a, int b);
public int sub(int a, int b);
public int mul(int a, int b);
public int div(int a, int b);
}
public class BasicCalculator implements calculate {
public int a;
public int b;
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
public int multiply(int a, int b) {
return a * b;
}
public int division(int a, int b){
return a/b;
}
}
public class test {
public static void main(String[] args) {
calculate c= new BasicCalculator();
c.add(5,6);
}
}
这里有几个问题。
首先,由于 BasicCalculator
是 public class,因此需要在其自己的名为 BasicCalculator.java
.
的文件中定义它
其次,BasicCalculator
中的方法名称必须与您在 calcualte
中尝试实现的方法名称相匹配 - 即 sub
、mul
和 div
而不是 subtract
、multiply
和 division
.
将测试 class 发送到它自己的 class 而不是与 BasicCalculator.java 相同的 class,因为 java 通常不喜欢与 C.
不同,以这种方式处理 classes
然后在您已实现的每个方法之上添加@Override,这样代码将变为:
@Override
public int div(int a, int b) {
return 0;
}
比如这样。
这里发生的事情是因为你正在实现你的接口,所以你需要在你正在实现的 class 中包含所有方法。
最后当你 运行 test.java 添加 System.out.println(c.add(5, 6));
例如因为 return x;
不在控制台上打印实际值。
我正在做作业,使用 java 和 java 中的界面制作一个简单的计算器。但是实现 java 的 class 给出错误说
The public type `BasicCalculator` must be defined in its own file
The type `BasicCalculator` must implement the inherited abstract method `calculate.mul(int, int)
这是代码
interface calculate{
public int add(int a, int b);
public int sub(int a, int b);
public int mul(int a, int b);
public int div(int a, int b);
}
public class BasicCalculator implements calculate {
public int a;
public int b;
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
public int multiply(int a, int b) {
return a * b;
}
public int division(int a, int b){
return a/b;
}
}
public class test {
public static void main(String[] args) {
calculate c= new BasicCalculator();
c.add(5,6);
}
}
这里有几个问题。
首先,由于 BasicCalculator
是 public class,因此需要在其自己的名为 BasicCalculator.java
.
其次,BasicCalculator
中的方法名称必须与您在 calcualte
中尝试实现的方法名称相匹配 - 即 sub
、mul
和 div
而不是 subtract
、multiply
和 division
.
将测试 class 发送到它自己的 class 而不是与 BasicCalculator.java 相同的 class,因为 java 通常不喜欢与 C.
不同,以这种方式处理 classes然后在您已实现的每个方法之上添加@Override,这样代码将变为:
@Override
public int div(int a, int b) {
return 0;
}
比如这样。
这里发生的事情是因为你正在实现你的接口,所以你需要在你正在实现的 class 中包含所有方法。
最后当你 运行 test.java 添加 System.out.println(c.add(5, 6)); 例如因为 return x; 不在控制台上打印实际值。