gpt4 book ai didi

java - 覆盖扩展接口(interface)中的返回类型 - 坏主意?

转载 作者:太空狗 更新时间:2023-10-29 22:54:26 29 4
gpt4 key购买 nike

在 Java 中,您可以执行以下操作:

public interface IEngine{}
public interface ICoolEngine extends IEngine{}

public interface Car
{
IEngine getEngine();
}
public interface ICoolCar extends ICar
{
@Override
ICoolEngine getEngine();
}

虽然这很好地解决了我一直在努力解决的问题,但“感觉”有些地方不对。

我是不是犯了一些令人讨厌的设计失礼?

最佳答案

不,你做对了。协变返回只是指定该类及其下面的类必须返回父类返回的原始通用类参数的特定子类。这也意味着你的子类仍然与要求它返回引擎的原始接口(interface)兼容,但如果你知道它是一个 ICoolCar,它有一个 ICoolEngine - 因为更具体的接口(interface)知道更具体的功能。这适用于接口(interface)和类 - 这是正确的、适当的并且对引导很有用。

关于java - 覆盖扩展接口(interface)中的返回类型 - 坏主意?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/864557/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com