您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Java什么是协变返回类型?

Java什么是协变返回类型?

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

为了举例说明,通常情况是Object.clone()-声明为返回类型Object。你可以在自己的类中重写此方法,如下所示:

public class MyFoo
{

   ...

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

这样做的好处是,任何持有对MyFoo对象的显式引用的方法都将能够调用clone()并知道(无需强制转换)返回值是的实例MyFoo。如果没有协变量返回类型,则必须声明MyFoo中的重写方法以返回Object-因此,调用代码将必须显式缩减方法调用的结果(即使双方都“知道”它只能是MyFoo的实例) )。

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

java 2022/1/1 18:20:41 有252人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶