Java接口-自定义返回类型?
我有一个可食接口、一个Location类和一个实现可食的草莓类。我可以编译和运行没有任何问题。然而,我认为实现接口的类需要包含所有接口方法我的问题是,既然草莓实现了一个函数,但没有包含getLocation方法,为什么我的代码没有出现错误?如果我将getLocation的返回类型更改为原语,我就会得到我要查找的错误。返回自定义类型是否会有所不同?若然,原因为何Java接口-自定义返回类型?,java,interface,implements,Java,Interface,Implements,我有一个可食接口、一个Location类和一个实现可食的草莓类。我可以编译和运行没有任何问题。然而,我认为实现接口的类需要包含所有接口方法我的问题是,既然草莓实现了一个函数,但没有包含getLocation方法,为什么我的代码没有出现错误?如果我将getLocation的返回类型更改为原语,我就会得到我要查找的错误。返回自定义类型是否会有所不同?若然,原因为何 public interface Edible { Location getLocation(); } 我将代码粘贴到配置
public interface Edible {
Location getLocation();
}
我将代码粘贴到配置了jdk1.8.0_111的eclipse 4.6.3中,得到以下错误:
类型草莓必须实现继承的抽象方法aubible.getLocation()草莓.java/test/src第1行java问题
您可以使类抽象,也可以实现getLocation()
这两种方法都修复了编译错误
编辑:不需要IDE帮助,给定的代码无法工作,缺少实现。制作抽象类或实现方法
Edit2:作为参考,实现接口中定义的getLocation()方法的工作示例如下:
public class Strawberry implements Edible {
int cals;
Location location;
public Strawberry(int c, Location l) {
cals = c;
location = l;
}
@Override
public Location getLocation() {
return location;
}
}
这段代码确实生成了一个编译错误。你确定你在这里粘贴了准确的代码吗?谢谢!我知道现在发生了什么!草莓类扩展了一个LivingThing类,该类有一个getLocation方法!谢谢你指出了正确的方向。我不确定你是否正确。首先,示例代码中没有LivingThing类。其次,您的代码如下所示:草莓类实现了接口
public class Strawberry implements Edible{
int cals;
Location location;
public Strawberry(int c, Location l){
cals = c;
location = l;
}
}
public class Strawberry implements Edible {
int cals;
Location location;
public Strawberry(int c, Location l) {
cals = c;
location = l;
}
@Override
public Location getLocation() {
return location;
}
}