1.概念
协变返回类型:子类重写父类方法时,返回类型可以是父方法返回类型的子类类型
2.举例
代码
package com.fjl;
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();
Base b=new Derive();
System.out.println(d.getInput().getClass());
System.out.println(b.getInput().getClass());
}
}
输出
class java.io.ByteArrayInputStream
class java.io.ByteArrayInputStream
`S``