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
。如果没有协变量返回类型,则必须声明MyFo
o中的重写方法以返回Object
-因此,调用代码将必须显式缩减方法调用的结果(即使双方都“知道”它只能是MyFoo
的实例) )。
请注意,没有什么特别的,clone()
并且任何重写的方法都可以具有协变量返回值-我在这里以它为例,因为它是通常有用的标准方法。
以上是 Java什么是协变返回类型? 的全部内容, 来源链接: utcz.com/qa/421131.html