java - Java - 方法继承的问题覆盖
问题描述
我在对象中遇到了下一个继承问题:
- 头等舱:
public class LegalPersonRest extends LegalPerson {}
-二等:
public class Company {
private List<LegalPerson> legalPersons;
}
-第三类:
public class CompanyRest extends Company {
@Override
public List<LegalPersonRest> getLegalPersons() {
return super.getLegalPersons();
}
}
在这个方法 getLegalPersons 我得到了错误:试图使用不兼容的返回类型。
我不知道为什么 LegalPersonRest 会扩展 LegalPerson。
Company 和 LegalPerson 类是我的域。(层域)
CompanyRest 和 LegalPersonRest 类扩展了域的类。(层适配器)
如果我将 List 更改为 List,我认为是错误的,因为我需要使用 LegalPersonRest。
这种情况下正确的继承形式是什么?
问候,
解决方案
我只是要指出以防这是问题所在:超类需要具有您要覆盖的方法。Company
没有方法getLegalPersons()
,所以你不能覆盖它。但我认为Company
确实有getLegalPersone()
,因为您稍后会调用该方法(请生成一个最小的、可重现的示例)。接下来我能想到的是Company
'sgetLegalPersons()
方法不返回 a List<LegalPersonRest>
。它可能会返回其他东西的列表,或者完全返回另一个对象。请检查返回类型是否与CompanyRest
.
推荐阅读
- python - 如何为 Opencv 构建 Python 轮子
- c++ - 如何从不同派生类的组合中添加功能?
- git - 如何删除 GitHub 存储库
- office365 - Moodle 3.9 的 OpenID Connect 问题
- python-3.x - Python 循环导入模块 _gi 导致 apt-add-repository 命令在 linux 中失败
- flutter - 如何处理飞镖上的原始字节?
- python - 使用 BeautifulSoup 的多个 URL 的错误请求
- javascript - 视频结束后 Java Script Auto Next Page
- video.js - videojs:如何在“cuechange”上获取字幕的实际文本
- react-native - 在 Android 上的 React Native 中使用 Axios 上传图片