java中不兼容的返回类型错误

时间:2017-09-07 08:38:44

标签: java

所以我有两个类,如下面的

public abstract class BaseFoo{
   protected abstract GetModel getModel();
}

public class HybridBaseFoo extends BaseFoo {
    @Override
    protected HybridGetModel getModel() { // error here
    }

}

HybridGetModel具有以下关系

public abstract class AbstractGetModel{
}

public class GetModel extends AbstractGetModel{

}

public class HybridGetModel extends GetModel{
}

但是我得到了The return type is incompatible with BaseFoo.getModel(),我在代码中指出了错误。

2 个答案:

答案 0 :(得分:1)

我可以重新创建错误的唯一方法是从getModel方法返回错误类型的对象

例如,这样可以正常工作:

public class HybridBaseFoo extends BaseFoo {
    @Override
    protected HybridGetModel getModel() {
        return new HybridGetModel();
    }
}

但这会产生错误incompatible types: java.lang.String cannot be converted to HybridGetModel

public class HybridBaseFoo extends BaseFoo {
    @Override
    protected HybridGetModel getModel() {
        return ""; //error here
    }
}

答案 1 :(得分:0)

您可以返回GetModel

public class HybridBaseFoo extends BaseFoo {
    @Override
    protected GetModel getModel() {
      return new HybridGetModel();
    }
}