您的位置:首页 > 其它

协变返回类型

2014-04-06 19:01 120 查看
在面向对象程序设计中,协变返回类型指的是子类中的成员函数的返回值类型不必严格等同于父类中被重写的成员函数的返回值类型,而可以是更 "狭窄" 的类型。

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());

}

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