Java什么是协变返回类型?

Java什么是协变返回类型?,第1张

Java什么是协变返回类型

协变返回,意味着当一个方法被覆盖时,覆盖方法的返回类型被允许为覆盖方法的返回类型的子类型。

为了举例说明,通常情况是

Object.clone()
-声明为返回类型
Object
。你可以在自己的类中重写此方法,如下所示:

public class MyFoo{   ...   // Note covariant return here, method does not just return Object   public MyFoo clone()   {       // Implementation   }}

这样做的好处是,任何持有对MyFoo对象的显式引用的方法都将能够调用clone()并知道(无需强制转换)返回值是的实例

MyFoo
。如果没有协变量返回类型,则必须声明
MyFo
o中的重写方法以返回
Object
-因此,调用代码将必须显式缩减方法调用的结果(即使双方都“知道”它只能是
MyFoo
的实例) )。

请注意,没有什么特别的,

clone()
并且任何重写的方法都可以具有协变量返回值-我在这里以它为例,因为它是通常有用的标准方法。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5487457.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存