设为首页 加入收藏

TOP

理解Java中的协变返回类型
2014-11-24 01:40:29 来源: 作者: 【 】 浏览:1
Tags:理解 Java 返回 类型

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


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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇字典树编写笔记 下一篇Python::OS 模块

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: