码迷,mamicode.com
首页 > 编程语言 > 详细

Java协变返回类型

时间:2015-04-06 14:13:46      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

  今天看到句话:“支持重写方法时返回协变类型”。

  那么什么事协变类型?在网上找了找资料,大体上明白了。

Java 5.0添加了对协变返回类型的支持,即子类覆盖(即重写)基类方法时,返回的类型可以是基类方法返回类型的子类。协变返回类型允许返回更为具体的类型。
示例程序如下:

 代码如下:


import java.io.ByteArrayInputStream;
import java.io.InputStream;
class Base
{
    //子类Derive将重写此方法,将返回类型设置为InputStream的子类
   public InputStream getInput()
   {
      return System.in;
   }
}
public  class Derive extends Base
{

    @Override
    public ByteArrayInputStream getInput()
    {

        return new ByteArrayInputStream(new byte[1024]);
    }
    public static void main(String[] args)
    {
        Derive d=new Derive();
        System.out.println(d.getInput().getClass());
    }
}
/*程序输出:
class java.io.ByteArrayInputStream
*/

  


Java协变返回类型

标签:

原文地址:http://www.cnblogs.com/luankun0214/p/4395815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!