您的位置:首页 > 编程语言 > Java开发

Java协变返回类型

2015-04-06 13:27 302 查看
今天看到句话:“支持重写方法时返回协变类型”。

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

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
*/


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: