LearnJava 多态之协变返回类型
2016-11-15 00:12
369 查看
协变返回类型
JavaSE5 中添加了协变返回类型,它表示在导出类中的被覆盖方法可以可以返回基类方法的返回类型的某种导出类型:
class Grain{ public String toString() { return "Grain";} } class Wheat extends Grain{ public String toString() { return "Wheat";} } class Mill { Grain process() { return new Grain();} } class WheatMill extends Mill { Wheat process() { return new Wheat();} } public class CovariantReturn{ public static void main(String[] args){ Mill m = new Mill(); Grain g = new Grain(); System.out.println(g); m = new WheatMill(); g = m.process(); System.out.println(g); } }/* Output: Grain Wheat *///:~
总结:
JavaSE5 与Java较早版本之间的主要差异就是较早版本将强制process( )的覆盖版本必须返回Grain,而不能返回Wheat,尽管Wheat是从Grain中导出的,因而也应该是一种合法的返回类型。协变返回类型允许返回更具体的Wheat类型。多态意味着“不同的形式“。在面向对象的程序设计中,我们持有从基类继承而来的相同接口,以及使用该接口的不同形式:不同版本的动态数据绑定方法。
相关文章推荐
- java中的协变返回类型
- Java之协变返回类型理解和简单实例
- 关于java可变(协变)返回类型的解说之一------------基类与派生类
- Java之协变返回类型详解(附源码)
- Java covariant return type(协变返回类型)
- [Thinking in Java] - No.6 协变返回类型
- 理解Java中的协变返回类型
- 第八章 多态总结 协变返回类型 向下转型 和运行时类型识别继承中 is-a 和 is-like-a及子类父类的方法调用(ClassCastException)
- Java | 协变返回类型学习时的一个例子
- 编程思想 之「多态、初始化顺序、协变返回类型」
- java 协变返回类型的理解
- java编程思想--协变返回类型
- Java协变返回类型
- java协变返回类型使用示例
- java学习笔记---协变返回类型
- 当java调用oracle的存储过程时,存储过程的返回值类型不能为boolean
- JAVA多态与类型转化分析
- java 返回数据的类型提升
- Java返回类型泛型的用法小结
- Java中Date转换大全,返回yyyy-MM-dd的Date类型