gpt4 book ai didi

java - "return a type that is compatible"是什么意思?

转载 作者:行者123 更新时间:2023-11-29 09:52:32 25 4
gpt4 key购买 nike

我是 Java 新手,所以我正在阅读 Java Head First。我已经看到,当你有一个带有抽象方法的抽象类时,你应该在具体类中覆盖这些抽象方法,这意味着“在你的类中创建一个具有相同方法签名(名称和参数)的非抽象方法,并且与抽象方法声明的返回类型兼容的返回类型。”

我可以清楚地理解关于具有相同签名(名称和参数)的第一部分,但我想对与声明的返回类型兼容的返回类型有一个明确的解释抽象方法。

兼容类型到底是什么意思?有人可以举个例子吗?好像返回类型应该是抽象方法中定义的返回类型的类或者子类?

最佳答案

覆盖方法返回的类型必须相同,或者必须是基方法返回类型的子类或子接口(interface)。

简而言之:它必须尊重基方法的契约。如果基本方法说:“我返回一个水果”,那么覆盖方法可以说“我返回一个水果”,但它也可以说“我返回一个香蕉”。

没关系,因为香蕉是水果。任何调用该方法并获得香蕉的人都很高兴:期望得到一个水果,并且收到了一个水果。

不过,退还汽车是不正确的,因为当您要水果时,得到汽车是 Not Acceptable 。

这个的技术术语是 covariant return type .请注意,即使基类/方法不是抽象的,这条规则也是正确的。

关于java - "return a type that is compatible"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35828382/

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