淡漠黑白

Here am I

java 协变返回

java 协变返回

所谓协变,就是父类和子类保持相同形式的变化。

在java5.0中,只要子类方法与超类方法具有相同的方法签名,或者子类方法的返回值是超类方法的子类型,就可以覆盖。

面向对象语言中,协变返回方法指的是一个子类在覆盖超类的方法的时候,方法的返回值可以被一个“更窄”的类型所替代。

例如:

复制代码
class Collection { 
     Iterator iterator() { ... } 
} 
 
class List extends Collection { 
    @Override  
    ListIterator iterator() { ... } 
}  
复制代码

Iterator函数获得到当前集合的迭代器,在子类中,迭代器有着更确切的表示,所以使用了Iterator的子类ListIterator作为新的返回值。

注意:"协变返回(covariant return)",仅在subclass(子类)的返回类型是superclass(父类)返回类型的extension(继承)时才被容许。


阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭