【发布时间】:2020-11-18 22:49:54
【问题描述】:
在 java 中,我必须创建一个扩展另一个类并实现接口的类。这是我必须扩展的类
public class Cell {
public void receiveRat(RatInterface pRat) {
}
}
这是我必须实现的接口
public interface HoleInterface {
public int[] receiveRat(RatInterface pRat);
}
我已经上课了
public class Hole extends Cell implements HoleInterface {
public Hole() {
}
@Override
public int[] receiveRat(RatInterface pRat) {
// TODO Auto-generated method stub
return null;
}
hole 类中的 int[] 不起作用,因为 Hole 扩展了 Cell,而 Cell 有一个类似的方法,返回类型为 void。我该怎么办?
【问题讨论】:
-
问:你想要做什么?如果“Cell.receiveRat()”和“HoleInterface.receiveRat()”是两个不同的东西,那你为什么不给其中一个取个不同的名字呢?
-
这是一项任务,我无法更改名称。我想知道是我做错了什么,还是我无能为力,只能改名字?
-
Java 中的一个类不能实现两个签名相同(即名称+参数列表)但返回类型不同的方法。请注意,JVM 本身在加载和使用这类类方面没有问题,但 Java 语言 没有明确的方式来构造它们(即使有时它创建打破此规则的合成方法)。
-
这是你应该和你的老师谈谈的事情。现在,如果可能的话。
-
如果 Cell 的
receiveRat()方法返回 void,则当前没有使用返回的任何内容,因此您可以将其更改为返回int[]并且不会中断,所以我会这样做。跨度>
标签: java