Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java接口-自定义返回类型?_Java_Interface_Implements - Fatal编程技术网

Java接口-自定义返回类型?

Java接口-自定义返回类型?,java,interface,implements,Java,Interface,Implements,我有一个可食接口、一个Location类和一个实现可食的草莓类。我可以编译和运行没有任何问题。然而,我认为实现接口的类需要包含所有接口方法我的问题是,既然草莓实现了一个函数,但没有包含getLocation方法,为什么我的代码没有出现错误?如果我将getLocation的返回类型更改为原语,我就会得到我要查找的错误。返回自定义类型是否会有所不同?若然,原因为何 public interface Edible { Location getLocation(); } 我将代码粘贴到配置

我有一个可食接口、一个Location类和一个实现可食的草莓类。我可以编译和运行没有任何问题。然而,我认为实现接口的类需要包含所有接口方法我的问题是,既然草莓实现了一个函数,但没有包含getLocation方法,为什么我的代码没有出现错误?如果我将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;
    }
}