【问题标题】:Java - Problem override with method inheritance [duplicate]Java - 方法继承的问题覆盖[重复]
【发布时间】:2020-07-07 19:58:59
【问题描述】:

我在对象中遇到了下一个继承问题:

-头等舱:

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。

这种情况下正确的继承形式是什么?

问候,

【问题讨论】:

标签: java class object inheritance extends


【解决方案1】:

我只是要指出,以防这是问题所在:超类需要具有您要覆盖的方法。 Company 没有 getLegalPersons() 方法,所以你不能覆盖它。但我认为Company 确实有getLegalPersone(),因为您稍后会调用该方法(请生成minimal, reproducible example)。接下来我能想到的是CompanygetLegalPersons() 方法不会返回List&lt;LegalPersonRest&gt;。它可能会返回其他东西的列表,或者完全返回另一个对象。请检查返回类型是否与CompanyRest中的方法相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-16
    • 2023-03-07
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多