gpt4 book ai didi

java - 在java中覆盖具有不同返回类型的方法?

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

我读过一本书,它说我可以覆盖具有相同签名的方法。根据这本书,方法的签名是 Method_Name + Parameters passed。

根据书,我可以覆盖具有不同返回类型的方法。在 Java 中是否真的可以覆盖具有不同返回类型的方法?因为我在网上做了一些搜索,我发现有人说要覆盖方法,返回类型也应该相同。

根据这本书,它还说当我们尝试重载具有相同方法名称和参数但返回类型不同的方法时,java 将抛出编译错误,因为签名仅表示方法名称和参数。如果这是真的,我们应该能够覆盖具有不同返回类型的方法。

请帮助我理解这一点。提前致谢。

最佳答案

您可以返回不同的类型,只要它与重写方法的返回类型兼容即可。兼容意味着:它是重写方法返回的类或接口(interface)的子类、子接口(interface)或实现。

这是合乎逻辑的。如果一个方法返回一个 Animal,而您的派生类返回一个 Cow,则您没有违反父类(super class)方法的契约,因为 Cow 是一个 Animal。如果派生类返回 Banana,那将不再正确,因为 Banana 不是 Animal。

关于java - 在java中覆盖具有不同返回类型的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14519797/

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